目录
目标
- 每隔1s发出一条消息
BD
main.cpp
#include"xparameters.h"#include"xuartps.h"#include"xil_printf.h"#include"sleep.h"#include<string.h>/* ================= 配置 ================= */#defineUART_DEVICE_IDXPAR_XUARTPS_0_DEVICE_ID/* ================= 全局对象 ================= */staticXUartPs UartPs;/* ================= UART 初始化 ================= */staticintBspUartInit(void){intStatus;XUartPs_Config*Config;Config=XUartPs_LookupConfig(UART_DEVICE_ID);if(Config==NULL)returnXST_FAILURE;Status=XUartPs_CfgInitialize(&UartPs,Config,Config->BaseAddress);if(Status!=XST_SUCCESS)returnStatus;Status=XUartPs_SelfTest(&UartPs);if(Status!=XST_SUCCESS)returnStatus;/* 115200 / 8N1 */XUartPs_SetBaudRate(&UartPs,115200);XUartPs_SetOperMode(&UartPs,XUARTPS_OPER_MODE_NORMAL);returnXST_SUCCESS;}/* ================= BSP 对外发送接口 ================= *//* 阻塞发送,直到发完 */voidBspUartWrite(uint8_t*buf,uint32_tlen){uint32_tsent=0;while(sent<len){sent+=XUartPs_Send(&UartPs,buf+sent,len-sent);}}/* ================= main ================= */intmain(void){intStatus;xil_printf("BspUartWrite TX test start\r\n");Status=BspUartInit();if(Status!=XST_SUCCESS){xil_printf("UART init failed!\r\n");while(1);}constchar*hello="Hello! BspUartWrite OK\r\n";BspUartWrite((uint8_t*)hello,strlen(hello));uint32_tcnt=0;charbuf[64];while(1){intn=sprintf(buf,"TX cnt = %lu\r\n",cnt++);BspUartWrite((uint8_t*)buf,n);sleep(1);}return0;}