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

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

[复制链接]
小鹰fighting 发布时间:2014-4-20 23:37
FIFO即队列,先入先出,使用队列方式处理串口数据很方便。* i) z5 d2 S8 E. d4 n' M
在处理串口数据时,常常会碰到一些问题。比如上位机发来一串指令,指令格式不是固定的,可长可短,有时候不好判断指令是否完整。一般是靠帧头和振尾处理,还有一种办法,不知道有没有人使用过,就是判断发送字符之间的时间间隔,比如发送一个字节最多需要11位(1个起始位,8个数据位,最多两个停止位),假设波特率为9600,那么发送一个字节最多使用时间为T = 11 / 9600 = 1.146ms ,
7 i+ d3 l  L, n# ?9 D3 x8 }- g7 b那么我们就可以这个判断,在3ms之内,如果接受字节没有增加,那么该字节就接收完毕,我就是这个判断的,没出现过什么问题。6 l' [3 l6 X' K2 c6 `0 T
程序如下:如果串口接受队列接受个数不变,则接受完成,无需判断帧尾,当然,这里最好使用CRC校验,以防误读。$ A) i( W! k4 w2 n& s0 Z
如果有人要咨询modbus协议,可以留言,我这个程序处理这种协议非常方便的。9 Q6 ]0 P3 |* Z! ~
首先得创建队列。
# f7 s  {: N- q: d9 B* u//**********************************************************3 [) R' h: \. y, ]
9 h" L! H9 p: r
//***********************************************************" [- f8 }) e9 r; m

3 ]6 D; T9 `$ h# m* p" `' c以上是接受,下面讲讲发送。
* C. o. D7 E; ]0 h3 p& n发送就是入列,然后使用“USART_ITConfig(USART2, USART_IT_TXE, ENABLE) ; ”进入串口中断进而发送数据
; W1 U; f* P$ ?4 R' P
/ b! G1 ~! w- P+ A: X下面来讲讲串口中断如果配置的。大致意思就是接受字节入队,发送出队。) `: O1 _7 p- V

* P# [/ h9 ]8 i3 S. ]不知大家对这个写法有什么看法,欢迎各位留言指教& U0 H; \5 B" u9 G% m
附件为队列的程序,感兴趣的话可以下载看看。/ N, ^% {6 H+ s+ ]! \' e, S, N' S0 y
% E; c9 y: M1 \2 r" g; d8 T+ t3 @

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% i. t( m. \4 k. o
                mov R7,#10
+ q  H& \1 F* {                DJNZ R7,$( X: e# T/ x3 V  z& f3 `- ?9 P
                #pragma endasm
oldbeginner 回答时间:2014-6-20 19:23:47

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


( T' B8 Y0 r; X, q& 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管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版