OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4461|回复: 3

求助:用串口连续不断接收数据?

[复制链接]

3

主题

5

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2015-9-21
在线时间
8 小时
发表于 2016-9-28 11:59:24 | 显示全部楼层 |阅读模式
20金钱
各位大神,有没有做过这样一个类似项目:发动机ECU通过RS232串口向外连续不断发送数据(波特率19200),每帧数据包括144个字节(末尾3个为标志字节FC FB FA),每帧数据间隔130us,我现在想接收得到其中的某几个字节用来显示,请问这个数据接收协议怎么写才能保证接收数据不丢失,而且能正确显示我所需要的字节

最佳答案

查看完整内容[请看2#楼]

做FIFO接收,然后处理细节优化好就没问题。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-9-28 11:59:25 | 显示全部楼层
做FIFO接收,然后处理细节优化好就没问题。
回复

使用道具 举报

54

主题

1008

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2384
金钱
2384
注册时间
2012-11-22
在线时间
403 小时
发表于 2016-9-28 13:07:08 | 显示全部楼层
读尾,读到后按长度和下一个尾提取这一包数据,正确的话提取那几个字节。这个发送频率这么高,如果接收中断里面处理来不及的话就先将提取的数据包存入缓冲区,然后主程序每次循环的时候去解包、提取那几个数据。缓冲区大小根据实际情况来定义,缓冲区的插入和读取需要处理好。
态度决定一切
回复

使用道具 举报

6

主题

201

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1149
金钱
1149
注册时间
2015-11-13
在线时间
267 小时
发表于 2016-9-28 17:16:38 | 显示全部楼层
本帖最后由 特朗姆斯 于 2016-9-28 17:19 编辑

这个频率接收数据对于MCU的压力非常小,19200的波特率大概也就1ms~2ms之间接收一个数据。

除非你处理数据的算法非常复杂(基本不可能),否则完全处理的过来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-16 21:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表