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

2019-07-20 02:56发布


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

寄存器啊, 其实问题不在库函数, 而在库函数的工作方式, 发送后就在哪儿死停, 等到发送完成才退出, 发一个字节的时间就等于收一个字节的时间啊, 你再来个SYSTICK中断, 那来足够的时间给你处理接收?
当然, 你说的问题能有n个可能性, 我只是根据仅有的信息猜的

一周热门 更多>