跪求关于F4+uCOSIII多串口数据处理任务出现丢数问题

2019-07-20 15:40发布

跪求各位大神指教,我在调试STM32F429+uCOSIII多串口数据处理任务的时候,出现了数据丢失现象。

我使用了五个串口中断,USART1、USART6、USART3、UART7、USART2(模拟时钟),使用串口调试助手模拟设备发送串口数据。
在main函数中设置了4个任务来获取前四路串口的数据,并使用USART2的数据打上时间戳,然后使用FATFS将数据保存到TF卡上

当我设置自动发送周期一样的时候(比如都是500ms),数据完整无丢失
但是如果有一个发送周期不一致,比如250ms或1000ms,则会出现数据无故多一位或少一些的情况:

比如 我让四个串口发送1.111,2.222,3.333,让USART2发送2017.3.31,12:34:56
则会出现:
22017.3.31,12:34:56,1.111,2.222,3.333
或者
2017.3.31,12:34:56,11.111,2.222,3.333
甚至前面的时间戳丢失一大部分数据


请教各位大神,是任务设置的问题,还是任务调度的问题,还是串口中断优先级的问题呢。
程序由于仓促没贴上,下午贴上。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。