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

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

[复制链接]
小鹰fighting 发布时间:2014-4-20 23:37
FIFO即队列,先入先出,使用队列方式处理串口数据很方便。
  s3 @% q+ l# }  f; M0 a2 m4 m在处理串口数据时,常常会碰到一些问题。比如上位机发来一串指令,指令格式不是固定的,可长可短,有时候不好判断指令是否完整。一般是靠帧头和振尾处理,还有一种办法,不知道有没有人使用过,就是判断发送字符之间的时间间隔,比如发送一个字节最多需要11位(1个起始位,8个数据位,最多两个停止位),假设波特率为9600,那么发送一个字节最多使用时间为T = 11 / 9600 = 1.146ms ,
5 J6 y3 ^9 ~5 D3 m" Z那么我们就可以这个判断,在3ms之内,如果接受字节没有增加,那么该字节就接收完毕,我就是这个判断的,没出现过什么问题
! |" {3 F& R3 J3 [- U: T程序如下:如果串口接受队列接受个数不变,则接受完成,无需判断帧尾,当然,这里最好使用CRC校验,以防误读。# x' h+ P( }: f5 Z/ k: T1 S
如果有人要咨询modbus协议,可以留言,我这个程序处理这种协议非常方便的。
! _' ~8 W7 E/ ~+ k/ F首先得创建队列。
  y$ T# ?# y4 B9 N//**********************************************************
% A* \  c& b* e* l% ]5 F' w' U9 N
//***********************************************************
# V6 ?  n+ i" z0 k: W
% f7 ~# M" B6 F$ J& H- L) s7 W以上是接受,下面讲讲发送。: J4 d2 q8 R) d( b1 _# i8 ~
发送就是入列,然后使用“USART_ITConfig(USART2, USART_IT_TXE, ENABLE) ; ”进入串口中断进而发送数据' |2 Y4 [, k( G0 j0 T8 s) L

7 y* u. D; A  z下面来讲讲串口中断如果配置的。大致意思就是接受字节入队,发送出队。1 r* C9 {' ?- F5 X  z/ c. A
3 U  _: Q- D- \. u  U5 K# l) T
不知大家对这个写法有什么看法,欢迎各位留言指教/ Q1 R, m3 y: Z7 j! v
附件为队列的程序,感兴趣的话可以下载看看。( v# n; @) N* i6 P- |
  b+ ^8 ^! M8 d# S- |

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
8 O8 \; z# U1 x( c3 w  d+ }% U                mov R7,#10
" T3 U. a1 H, L2 |& W, G2 V# [6 I                DJNZ R7,$
+ m2 {6 ^" ^4 u- u/ X                #pragma endasm
oldbeginner 回答时间:2014-6-20 19:23:47

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

. k7 Z8 _% D1 {" s0 B% P
学习学习
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 手机版