打印
[应用相关]

STM32例程之串口帧数据接收

[复制链接]
2280|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
junyi12|  楼主 | 2019-4-18 11:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32串口按照帧格式接收数据,比如帧头为0x7E,帧尾为0x7F,那么程序可以接收这两个数据间的所有数据,本程序增加了数据传输超时检测功能,也就是在同一帧内两个数据之间的时间间隔如果超出预定的时间则接收数据状态机复位,程序开始准备接收下一帧数据。
·通过串口调试助手以十六进制的方式发送 7E 01 02 03 04 05 06 7F
.在串口调试助手接收界面会接收到“7E 01 02 03 04 05 06 7F” 字符串
运行效果图请参考网址
http://www.viewtool.com/bbs/forum.php?mod=viewthread&tid=83&highlight=stm32%C0%FD%B3%CC

使用特权

评论回复
沙发
lihui567| | 2019-4-19 17:32 | 只看该作者
楼主为啥不把源码共享到这啊,这样大家都可以学习一下超时检测

使用特权

评论回复
板凳
junyi12|  楼主 | 2019-4-23 09:18 | 只看该作者
lihui567 发表于 2019-4-19 17:32
楼主为啥不把源码共享到这啊,这样大家都可以学习一下超时检测

可以参考链接上的源码

使用特权

评论回复
评论
lihui567 2019-4-23 12:31 回复TA
这套路 
地板
梦幻泡影| | 2019-4-24 15:50 | 只看该作者
那么问题来了,假如我要传输的数据是7F 7E 7F 7E,按照以上说法,完整的数据帧应该是 7E 7F 7E 7F 7E 7F,这个时候下位机接收到的是什么数据呢

使用特权

评论回复
5
Prry| | 2019-4-27 22:14 | 只看该作者
帧头7E,帧尾7F,数据有 7D 7E 7F分别用 7D 01 7D 02 7D 03替换。接收端再还原。

使用特权

评论回复
6
Prry| | 2019-4-27 22:15 | 只看该作者
梦幻泡影 发表于 2019-4-24 15:50
那么问题来了,假如我要传输的数据是7F 7E 7F 7E,按照以上说法,完整的数据帧应该是 7E 7F 7E 7F 7E 7F, ...

帧头7E,帧尾7F,数据有 7D 7E 7F分别用 7D 01 7D 02 7D 03替换。接收端再还原。

使用特权

评论回复
7
Prry| | 2019-4-27 22:17 | 只看该作者
梦幻泡影 发表于 2019-4-24 15:50
那么问题来了,假如我要传输的数据是7F 7E 7F 7E,按照以上说法,完整的数据帧应该是 7E 7F 7E 7F 7E 7F, ...

帧头7E,帧尾7F,数据有 7D 7E 7F分别用 7D 01 7D 02 7D 03替换。接收端再还原。即:7E 7D 03 7D 02 7D 03 7D 02。

使用特权

评论回复
8
梦幻泡影| | 2019-4-28 09:43 | 只看该作者
Prry 发表于 2019-4-27 22:17
帧头7E,帧尾7F,数据有 7D 7E 7F分别用 7D 01 7D 02 7D 03替换。接收端再还原。即:7E 7D 03 7D 02 7D 0 ...

STM32这么好串口资源都被你们玩坏了,上位机发什么,下位机直接收什么不就完了,为什么还要把数据转来转去,增加不必要的出错风险

使用特权

评论回复
9
Prry| | 2019-4-28 23:16 | 只看该作者
梦幻泡影 发表于 2019-4-28 09:43
STM32这么好串口资源都被你们玩坏了,上位机发什么,下位机直接收什么不就完了,为什么还要把数据转来转 ...

有帧头帧尾好解析,没头没尾只能等超时,还易解错。

使用特权

评论回复
10
yklstudent| | 2019-4-29 07:27 | 只看该作者
没用帧长度 差评

使用特权

评论回复
11
梦幻泡影| | 2019-4-29 09:18 | 只看该作者
Prry 发表于 2019-4-28 23:16
有帧头帧尾好解析,没头没尾只能等超时,还易解错。

你是不知道如何使用中断来处理数据收发而已,像你这种既没有数据长度,又没有校验位的数据传送,中途丢了几个数据都不知道。

使用特权

评论回复
12
Prry| | 2019-4-29 21:39 | 只看该作者
梦幻泡影 发表于 2019-4-29 09:18
你是不知道如何使用中断来处理数据收发而已,像你这种既没有数据长度,又没有校验位的数据传送,中途丢了 ...

1、本人一直用中断收发(本帖讨论的是编码问题,实际与发送无关,甚至与物理通信无关,可以是USB、CAN、WiFi都可以这样编码);
2、根据帖子只回应关键部分,长度、校验都有,只是无需说出来;如果是有相关应用过的,一看意会到其中的要点,说多其他就是累赘了;

使用特权

评论回复
13
观海| | 2019-5-9 12:46 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

173

主题

189

帖子

2

粉丝