STM32/STM8技术william hill官网
直播中

王宏凌

7年用户 103经验值
擅长:嵌入式技术
私信 关注
[问答]

关于STM32串口数据接收寄存器的问题。

一直有个疑问就是STM32串口在接到上位机发来的一串数据时,这一串数据是不是首先全部到接收移位寄存器,然后进入接收中断,中断的时候是读完这完整的一串数据后才清楚终端还是读8为清除终端,然后依次读下一个8为,直到把这一串数据全部读取完毕。没有搞清楚这个,现在想写一个带协议的接收程序,特别困惑,希望大佬们解惑。谢谢!!

回帖(5)

萧十一

2019-6-12 10:40:20

最佳答案

串口收到消息。如果可以进中断的话(中断使能),他会立刻进中断,在中断中,你就要处理这些数据,要是不处理。就会被之后来的数据覆盖掉。
举报

王宏凌

2019-6-12 10:42:01
一直有个疑问就是STM32串口在接到上位机发来的一串数据时,这一串数据是不是首先全部到接收移位寄存器,然后进入接收中断,中断的时候是读完这完整的一串数据后才清除中断还是读8位清除中断,然后依次读下一个8位,直到把这一串数据全部读取完毕。没有搞清楚这个,现在想写一个带协议的接收程序,特别困惑,希望大佬们解惑。谢谢!!顶顶顶
举报

阿信509

2019-6-12 13:10:58
串口都是接收完一个字节就要中断的,有中断你不处理下次再来数据就把之前的覆盖掉了
1 举报

永森

2019-7-17 11:38:01
利用DMA+串口空闲中断,可以接受完整个数据帧后再产生中断
举报

Devenh

2019-7-22 19:00:46
stm32串口不带FIFO,不使用DMA,一个字节做一次中断处理,中断处理后清楚标志位。
1 举报

更多回帖

发帖
×
20
完善资料,
赚取积分