主题中讨论的其他器件: MSP-TS430PEU128
尊敬的专家:
我正在使用电路板 MSP-TS430PEU128在 MSP430F6779A 上测试 UART。
我的问题是读取 UART、无法从 RX 获取所有数据、下面是我如何执行该操作的代码、
void echoFxn (UArg arg0、UArg arg1) { 字节缓冲器[10]; 字符输入; int readSize = 1; UART_Handle UART; UART_Params uartParams; UART_PARAMS_INIT (uartParams); uartParams.readMode = UART_MODE_BLOCKING; uartParams.writeMode = UART_MODE_BLOCKING; uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.readReturnMode = UART_return_full; uartParams.readEcho = UART_ECHO_OFF; uartParams.readTimeout = 1; uartParams.baudrate = 115200; UART = UART_OPEN (1、uartParams);/* P3.4、5 = USCI_A1 TXD/RXD * if (UART == NULL){ System_abort ("打开 UART 时出错"); } while (1){ UART_READ (UART、INPUT、READSize);//一次性读取1 System_printf ("%c\n"、输入);System_flush (); } }
我正在使用访问端口工具发送数据"1234567890"、运行后、我只有"1"和"0"、它们是第一个和最后一个字符。 我所设置的波特率是多少、只能接收到这两个波特率。
哪里出了问题?
我还尝试了另一种读取 RX 数据的方法、即读取块:
void echoFxn (UArg arg0、UArg arg1) { 字节缓冲器[10]; 字符输入; int readSize = 1; UART_Handle UART; UART_Params uartParams; UART_PARAMS_INIT (uartParams); uartParams.readMode = UART_MODE_BLOCKING; uartParams.writeMode = UART_MODE_BLOCKING; uartParams.writeDataMode = UART_DATA_BINARY; uartParams.readDataMode = UART_DATA_BINARY; uartParams.readReturnMode = UART_return_full; uartParams.readEcho = UART_ECHO_OFF; uartParams.readTimeout = 1; uartParams.baudrate = 115200; UART = UART_OPEN (1、uartParams);//打开 PM_UCA1 if (UART == NULL){ System_abort ("打开 UART 时出错"); } while (1){ UART_READ (UART、&buffer、10);//一次性读取10 System_printf ("%s\n"、(char *) buffer);System_flush (); } }
我使用相同的工具发送数据"1234567890"、并获取所有数据"1234567890"、而不会丢失。 但问题是、如果我发送的数据小于10、那么我永远不会从 UART_READ 返回。 readTimeout 设置似乎不起作用,为什么会发生这种情况?
非常感谢您的参与。