你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【MCU实战经验】STM32串口收发之FIFO  

[复制链接]
小鹰fighting 发布时间:2014-4-20 23:37
FIFO即队列,先入先出,使用队列方式处理串口数据很方便。
" [( Q' A3 Q  y( I0 c4 j在处理串口数据时,常常会碰到一些问题。比如上位机发来一串指令,指令格式不是固定的,可长可短,有时候不好判断指令是否完整。一般是靠帧头和振尾处理,还有一种办法,不知道有没有人使用过,就是判断发送字符之间的时间间隔,比如发送一个字节最多需要11位(1个起始位,8个数据位,最多两个停止位),假设波特率为9600,那么发送一个字节最多使用时间为T = 11 / 9600 = 1.146ms ,0 b+ k, u' W+ Y! R/ V, G
那么我们就可以这个判断,在3ms之内,如果接受字节没有增加,那么该字节就接收完毕,我就是这个判断的,没出现过什么问题
# ^+ U, ^* J9 T  a7 Z程序如下:如果串口接受队列接受个数不变,则接受完成,无需判断帧尾,当然,这里最好使用CRC校验,以防误读。# d. F2 T) H' d+ E
如果有人要咨询modbus协议,可以留言,我这个程序处理这种协议非常方便的。/ U( h2 C* P0 ]( c' B4 J
首先得创建队列。
% g7 w- f8 _6 B: G" \0 F4 i//**********************************************************
% K1 v( F' W2 \' N% R$ Q
4 b9 a: i1 [( T% R1 z//***********************************************************6 K6 X' O  h* _0 H9 p# y

" [& H% b' v5 t: \以上是接受,下面讲讲发送。0 x$ x% P( x' ^9 k' g
发送就是入列,然后使用“USART_ITConfig(USART2, USART_IT_TXE, ENABLE) ; ”进入串口中断进而发送数据
1 ?' n  {5 Z; m8 f( P4 ~+ q# W! s1 n2 D6 x
下面来讲讲串口中断如果配置的。大致意思就是接受字节入队,发送出队。
8 H) h) @( [5 T# R
7 p, V, C0 S) H" Y, \2 A# X9 K不知大家对这个写法有什么看法,欢迎各位留言指教  K/ O% k3 Q8 o& s8 f
附件为队列的程序,感兴趣的话可以下载看看。, x- D" }$ M9 A. X
9 d% X( R/ v0 s& b0 C- p

Fifo4Serial.zip

下载

1.03 KB, 下载次数: 1667

评分

参与人数 2 ST金币 +2 收起 理由
hdream + 1
gnezgnez + 1 很给力!

查看全部评分

收藏 8 评论67 发布时间:2014-4-20 23:37

举报

67个回答
kakamyr 回答时间:2014-6-14 10:46:27

回复:【MCU实战经验】STM32串口收发之FIFO

谢谢楼主的分享,学习了
小李子 回答时间:2014-4-23 09:51:19

RE:【MCU实战经验】STM32串口收发之FIFO

STM32串口收发之FIFO强大
sjl666518 回答时间:2016-9-1 17:54:52
想学习一下modebus协议,不知大侠是否可以共享一下资料,我的邮箱是365203056@qq.com
aming992 回答时间:2014-4-22 20:23:46

RE:【MCU实战经验】STM32串口收发之FIFO

好东西啊,我想了解MODBUS协议程序 啊,能传我一份吗?739822539@qq.COM
pluto-422279 回答时间:2014-5-23 00:40:10

回复:【MCU实战经验】STM32串口收发之FIFO

 谢谢啦~!值得学习@!
gavin1218 回答时间:2014-5-23 10:17:26

回复:【MCU实战经验】STM32串口收发之FIFO

看看这个  觉得不错
ty64613 回答时间:2014-5-23 14:37:43

回复:【MCU实战经验】STM32串口收发之FIFO

顶......................
SLY 回答时间:2014-5-23 21:52:05

RE:【MCU实战经验】STM32串口收发之FIFO

学习学习!!!!
chunyangjs 回答时间:2014-6-11 18:22:32

RE:【MCU实战经验】STM32串口收发之FIFO

学习学习!!!!
andyzhao365-323 回答时间:2014-6-12 21:47:09

回复:【MCU实战经验】STM32串口收发之FIFO

 前来学习 前来学习 前来学习 前来学习 前来学习
曹晓鸽 回答时间:2014-6-14 10:49:58

回复:【MCU实战经验】STM32串口收发之FIFO

see
我就是ZHANG 回答时间:2014-6-16 23:03:58

回复:【MCU实战经验】STM32串口收发之FIFO

#pragma asm
- `! a6 Z9 k" K& m                mov R7,#10
' A+ }0 a! U; D0 n                DJNZ R7,$
3 h- h3 t7 X9 X3 Z" Q2 n' S                #pragma endasm
oldbeginner 回答时间:2014-6-20 19:23:47

回复:【MCU实战经验】STM32串口收发之FIFO

* Y- x' ]3 \: O
学习学习
361119128 回答时间:2014-6-25 23:48:58

回复:【MCU实战经验】STM32串口收发之FIFO

好东西一定呀丁丁
caizhiwei 回答时间:2014-7-22 18:37:52

回复:【MCU实战经验】STM32串口收发之FIFO

下下来看看!我的波特率是115200
12345下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版