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

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也不至于这样。。。接收缓存居然只要一个字节,来不及读就被覆盖了这样就丢数据了

x 出现错误。请重试或与管理员联系。