用6713芯片,DSP/BIOS操作系统,配置1ms定时器,串口数据接收在定时器里查询接收;
RS422,波特率921600,数据位8,无校验;
定时器完成数据接收和数据格式解码后,将解码后的数据放入消息队列缓存,并产生旗语;
由任务(TSK)继续完成数据的后续处理及相关计算;
现在问题是,在某种特定状态下,RS422串口接收的数据会偶尔丢失一个字节,导致定时器中数据格式解码错误,整个数据帧丢失;
有大神可以帮忙分析下是什么原因么?
Shine:
请问“在某种特定状态下”具体是指什么?丢失一个字节后,后续还能接收其它的数据帧吗?
user5942355:
回复 Shine:
感觉像是某种内存分布。在临界情况下,添加1行调试的代码,都有可能不丢数了;注释掉,又丢数。
持续性随机丢失一个字节,可以接收其他数据。
Shine:
回复 user5942355:
试试加大堆栈。
user5942355:
回复 Shine:
全局堆栈?还是数据处理任务的堆栈?