求助,STM32串口接收数据问题

2025-03-01 23:57:52
推荐回答(2个)
回答1:

额,我也正在为类似问题烦恼。可能帮不了你啊。
如果你接收的是定长数据的话,可以设置接收函数的参数里为那个长度。
如果是不定长数据的话,也可以考虑下空闲中断,论坛里有人分享过例程。

还有,也许根本就不是我怀疑的数据溢出问题...

我是用SPI接收定长数据,每次PC6上升沿中断后调用SPI中断接收函数,接收定长数据。
但是主从设备同时启动时,从设备的SPI接收就不正常了。

回答2:

程序思路是这样的,进入中断后:
接收陀螺仪的数据,如果收到的第一个字节不是0x55,就不接收。。此时counter是不增加的。。

如果接收到的第一个字节是0x55,counter自增,收到的数据暂存至 Temp。。。
当 counter自增到11时,将Temp收到的数据存至Re_buf,同时counter清零,sign置1

第一行的意思是 表示 如果接收寄存器非空,即有数据,那么判断为接收中断
第五行 是跳出中断