|
FIFO即队列,先入先出,使用队列方式处理串口数据很方便。 在处理串口数据时,常常会碰到一些问题。比如上位机发来一串指令,指令格式不是固定的,可长可短,有时候不好判断指令是否完整。一般是靠帧头和振尾处理,还有一种办法,不知道有没有人使用过,就是判断发送字符之间的时间间隔,比如发送一个字节最多需要11位(1个起始位,8个数据位,最多两个停止位),假设波特率为9600,那么发送一个字节最多使用时间为T = 11 / 9600 = 1.146ms , 那么我们就可以这个判断,在3ms之内,如果接受字节没有增加,那么该字节就接收完毕,我就是这个判断的,没出现过什么问题 。程序如下:如果串口接受队列接受个数不变,则接受完成,无需判断帧尾,当然,这里最好使用CRC校验,以防误读。 如果有人要咨询modbus协议,可以留言,我这个程序处理这种协议非常方便的。 首先得创建队列。 //********************************************************** //*********************************************************** 以上是接受,下面讲讲发送。 发送就是入列,然后使用“USART_ITConfig(USART2, USART_IT_TXE, ENABLE) ; ”进入串口中断进而发送数据 下面来讲讲串口中断如果配置的。大致意思就是接受字节入队,发送出队。 不知大家对这个写法有什么看法,欢迎各位留言指教 ![]() 附件为队列的程序,感兴趣的话可以下载看看。 |
Fifo4Serial.zip
下载1.03 KB, 下载次数: 1617
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版
回复:【MCU实战经验】STM32串口收发之FIFO
RE:【MCU实战经验】STM32串口收发之FIFO
RE:【MCU实战经验】STM32串口收发之FIFO
回复:【MCU实战经验】STM32串口收发之FIFO
回复:【MCU实战经验】STM32串口收发之FIFO
回复:【MCU实战经验】STM32串口收发之FIFO
RE:【MCU实战经验】STM32串口收发之FIFO
RE:【MCU实战经验】STM32串口收发之FIFO
回复:【MCU实战经验】STM32串口收发之FIFO