STM32F051使用串口中断接收只能接收到第一位数据,后面的7位接收不到

2019-07-14 14:53发布

现在这个程序只能接收到第一位数据
rec_num[]缓存中只有rec_num[0]接收到0XF5,后面的7位接收不到了。
运行平台如下:
STM32F051C8T6    内部8MHz晶振   系统时钟48MHz  通信波特率  57600
最后再说一下问题吧,MCU与串口调试助手对发与接收时,程序没有问题 。MCU与模块发送接收时MCU只能接收第一位数据,后面的7位接收不到,为什么?请大神帮帮忙。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
kghfh
1楼-- · 2019-07-16 04:50
 精彩回答 2  元偷偷看……
lishide
2楼-- · 2019-07-16 05:25
先调低发送速度看一下。
陈耿6666
3楼-- · 2019-07-16 09:57
TOPCB 发表于 2018-12-29 12:43
怎么会丢包呢?正常收发是不会发生该问题的.

你可以试试,就跟串口调试助手不加延时都会丢包,不过还是谢谢你,参考了你的意见,我把最后的一次延时去掉就可以,
陈耿6666
4楼-- · 2019-07-16 15:34
kghfh 发表于 2018-12-29 12:58
你怎么知道一定是接收到了命令的 第一个字节的0xf5啊 ,你的命令最后一个字节也是0XF5啊,会不会是你的接收缓存被冲掉了,只剩下了最后一个受到的数啊 ,a变量时不是有问题?看看定义位置,还有事不是别处也调用了

谢谢你的回答,这个值我仿真看到的,不关a的事,如果a的问题,我跟串口调试助手时调试也不行啊,不过问题找到了,只要将最后一次延时去掉就可以
TOPCB
5楼-- · 2019-07-16 16:40
中断中收到数据就放到缓冲区,另外注意看一下接收溢出标志位,是不是发生溢出,没有及时清掉溢出标志位。
陈耿6666
6楼-- · 2019-07-16 19:45
 精彩回答 2  元偷偷看……

一周热门 更多>