STM32F7使用链队列从串口接收数据出现漏掉字节的问题

2019-07-20 02:56发布


我是用原子的F7开发板,试了下使用链队列从串口接收数据,串口接收数据波特率为115200,一边收一边在main函数while(1)中检测队列是否为空,不空则将数据发送出来,但是当发送大量数据时时不时就会少几个字节,如果使用数组实现队列就不会出现这种问题,链队列中malloc使用C库函数和原子的内存管理都试过,都会出现漏字节的问题,想问下这种情况怎么回事呢?是malloc执行太耗时间了吗?如果在while(1)中再加一些其他的代码,漏字节的现象更严重了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
ZHDX
2019-07-21 21:45
剩下的只能靠你自己了.  毕竟是你自己写的代码, 又没POST上来.

我也只能靠最可能的方向去找原因.

IRQ的要求很高, 除了时限问题, 还有一个问题是 "线程安全"

也就是说你的关键代码也很容易因为被中断而产生各种诡异的问题.

所以像FreeRTOS这种操作系统才会做出任务间通信机制,  包括IRQ


又或者什么原因都不是呢? 只是代码有BUG

一周热门 更多>