主题中讨论的其他器件:CC2541、 CC2640R2F
您好!
我按照 Doxygen 文档中的指令"在 UART_MODE_CALLBOART"中连续接收"、但回调仅发生一次。 为什么是这样? 下面是我的代码。
void UartApp__UartRxCB (UART_Handle handle、void *buf、size_t count) { if (count = wanedRxBytes){ //将字节从 RX 缓冲区复制到 TX 缓冲区 对于(size_t i = 0;i < count;i++) txBuf[i]=(uint8_t*) rxBuf)[i]; //将接收到的字节回传到发送器 UART_WRITE (hUART、txBuf、count); //开始另一次读取,大小与第一次调用时相同 // UART_read() UART_READ (hUART、rxBuf、wantedRxBytes); } 否则{ //处理错误或调用 UART_readCancel() } } void UartApp_Init (void) { const char echoPrompt[]="UART 已初始化! !! !\r\n"; UART_Params uartParams; /*调用驱动程序初始化函数*/ UART_init(); /*创建一个数据处理关闭的 UART。 */ UART_Params_init (&uartParams); uartParams.readMode = UART_MODE_CALLBACK; uartParams.readDataMode = UART_DATA_BINARTL.writeDataMode = UART_DATA_BINARTL.readCallback = UartApp_UartRxCB; uartParams.baudrate = 115200; hUART = UART_open (Board_UART0、&uartParams); wantedRxBytes = 1; if (hUART = NULL){ /* UART_open()失败*/ while (1); } UART_write (hUART、echoPrompt、sizeof (echoPrompt)); UART_read (hUART、 rxBuf、wantedRxBytes); }
-克尔