请教大家, cc3200 uart 只接收16字节。
UARTIntRegister(UARTA1_BASE, UARTIntHandler);
MAP_UARTFIFODisable(UARTA1_BASE); //关闭串口FIFO
MAP_UARTIntEnable(UARTA1_BASE, UART_INT_RX);
中断函数处理:
if (status & UART_INT_RX) {
UARTIntClear(UARTA1_BASE, UART_INT_RX);
while (UARTCharsAvail(UARTA1_BASE)) {
cCharacter = UARTCharGet(UARTA1_BASE);
Report("=%d ", cCharacter);
}
}
测试时,另一端串口每次发送200个字节, 在中断函数中。 只能接收到16个字节
如果启用:
MAP_UARTIntEnable(UARTA1_BASE, UART_INT_RT);
可以接收到更多, 但是是无序,且丢失了数据。(另一端数据为:0-199)
请教,如何正确接收串口数据?
gaoyang9992006:
程序不完整,不好判断,可以参考例程里的那个程序的形式写个试试看。或许你的波特率有问题呢?
th smi:
回复 gaoyang9992006:
谢谢你的回复, 你有试过,cc3200和另一端进行UART通讯吗? USB转串口到 电脑端也可以。 当数据有点大的时候, 数据接收好像会有些问题。
波特率不会有问题, 否则数据接收不正确。
th smi:
回复 th smi:
问题解决了, 在UART中断中,不要使用 report()等比较耗时的函数。