This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
MSP430 TI-RTOS UART_read接口存在bug。
在高波特率下,连续接收多个数据,会存在丢失数据问题。。单个一个个发正常。
如下:
0x10,0x11, 0x12, 0x13, 0x14, 0x15, 一个个发,从0x10 - 0x15正常
如果这6个字节是一同发的, 每次只能接收到2个, 连续发3组后接收到
0x11, 0x15, 0x11, 0x15, 0x11, 0x15
这个问题太低级了,波特率750000
建议不用ti-rtos,裸跑试试,看谁否还有数据丢失
UCOE,寄存器读取问题。系统取取数据不够及时
用uart_readPoll情况会好一点,uart_read中断方式,丢失率极高,大于90%。
430哪个器件?用的什么时钟,怎么配的底层?裸跑不用RTOS会有错误么?
我找到问题了。
TI RTOS的中断处理耗时太大了。 默认RTOS CPU MCLK 8.912M.
中间处理时间固件有3us左右。 如果波特率高 750000,连续发送要求中断间隔再1.3us左右。
RTOS中断响应来不及。 必须修改为DMA。
或者TI 这个F5529有点考虑不到位,UART加个 FIFO也不至于这样。。。接收缓存居然只要一个字节,来不及读就被覆盖了这样就丢数据了