STM32:串口收发HEX数据包理论篇(内含:1.实验现象+2.文本数据包/HEX数据包+ 3.文本数据包接收/HEX数据包接收)

简介: STM32:串口收发HEX数据包理论篇(内含:1.实验现象+2.文本数据包/HEX数据包+ 3.文本数据包接收/HEX数据包接收)

1.实验现象


实验一:HEX文件/文本文件


串口助手配置:


2ff611815edb4e6d895856764298fb46.png


发送模式,接收模式如右图,都选择HEX模式。


接按键,按下PB1按键,第二行和串口助手显示如下图所示:


b9c5a908b5004e058a31914ff7e83e26.png


FF开头,FE结尾是固定格式。


使用发送区发送,接收亦可,如下:


d450929792534cb4af89f2a595c813fa.png


实验二(简单人机交互):


a95f1e8747ce4756991550b5b31c2579.png


选择发送模式,接收模式均为文本模式。


发送区的开头,结尾是自己设置的,此处设置的是@和 (空格键)。@+输入相关指令+空格即可完成相关操作(如@LED_ON即可开灯)


2.HEX数据包:


fc9e9b24050849f7ba214c264936dadc.png


收到0XFF即为开始接收数据,0XFE为结束数据。


注:需要考虑数据和包头包尾(0XFF,0XFE)重复的情况,此时需要一定的方法来避免。


方法1.定义显示数据不出现0XFF,0XFE。


方法2:使用固定长度数据包。


方法3:增加包头包尾的数量+设计包头包尾特殊化。


注:包尾可省略,例固定包头+数据长度即可。(不推荐)


文本数据包:


b1f139b3cef0480ea8552fbfcec3c035.png


文本数据包已经经过编码和译码过程。


HEX数据包优点:传输直接,解析数据简单,适合模块发送的原始数据(如陀螺仪,温湿度传感器)


HEX数据包缺点:灵活性不足,载荷容易和包头包尾重复


文本数据包优点:数据直观,易理解,灵活。适合输入指令进行人机交互的场合(如蓝牙模块的AT指令,CNC和3D打印机常用的G代码)


文本数据包缺点:效率低。


HEX数据包接收:

4a3063ece43d4f6d95d2f5ba4c2c89e8.png

文本数据包接收:

6b2c65c0860140239f38295d1646c9ab.png

相关文章
|
4月前
stm32f407探索者开发板(十九)——外部中断实验-EXIT
stm32f407探索者开发板(十九)——外部中断实验-EXIT
274 0
|
4月前
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
stm32f407探索者开发板(十七)——串口寄存器库函数配置方法
675 0
|
4月前
STM32CubeMX 串口收发一帧数据
STM32CubeMX 串口收发一帧数据
53 9
|
4月前
|
芯片
STM32CubeMX 串口数据收发
STM32CubeMX 串口数据收发
134 2
|
4月前
stm32f407探索者开发板(二十三)——定时器中断实验
stm32f407探索者开发板(二十三)——定时器中断实验
337 0
|
4月前
|
芯片
stm32f407探索者开发板(二十)——独立看门狗实验
stm32f407探索者开发板(二十)——独立看门狗实验
293 0
|
4月前
|
监控
stm32f407探索者开发板(十八)——串口通信实验讲解(USART_RX_STA流程图详解)
stm32f407探索者开发板(十八)——串口通信实验讲解(USART_RX_STA流程图详解)
248 0
|
5月前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
414 2
|
5月前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
495 4