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

相关文章
|
1月前
|
存储 缓存 芯片
STM32--USART串口
STM32--USART串口
|
1月前
|
Java C语言
STM32使用printf重定向到USART(串口)并打印数据到串口助手
STM32使用printf重定向到USART(串口)并打印数据到串口助手
73 0
|
1月前
|
存储 传感器
【STM32基础 CubeMX】uart串口通信
【STM32基础 CubeMX】uart串口通信
197 0
|
10天前
使用STM32F103标准库实现定时器控制LED点亮和关闭
通过这篇博客,我们学习了如何使用STM32F103标准库,通过定时器来控制LED的点亮和关闭。我们配置了定时器中断,并在中断处理函数中实现了LED状态的切换。这是一个基础且实用的例子,适合初学者了解STM32定时器和中断的使用。 希望这篇博客对你有所帮助。如果有任何问题或建议,欢迎在评论区留言。
40 2
|
1月前
|
传感器
|
10天前
|
IDE 开发工具
使用STM32F103标准库实现自定义键盘
通过本文,我们学习了如何使用STM32F103标准库实现一个简单的自定义键盘。我们首先初始化了GPIO引脚,然后实现了一个扫描函数来检测按键状态。这个项目不仅能够帮助我们理解STM32的GPIO配置和按键扫描原理,还可以作为进一步学习中断处理和低功耗设计的基础。希望本文对你有所帮助,祝你在嵌入式开发的道路上不断进步!
31 4
|
10天前
|
存储 数据采集 数据安全/隐私保护
使用STM32F103读取TF卡并模拟U盘:使用标准库实现
通过以上步骤,你可以实现用STM32F103将TF卡内容变成U盘进行读取。这种功能在数据采集、便携式存储设备等应用中非常有用。如果你有更多的需求,可以进一步扩展此项目,例如添加文件管理功能、加密存储等。希望这篇博客能帮到你,如果有任何问题,欢迎在评论区留言讨论!
15 1
|
11天前
|
传感器
【经典案例】STM32F407使用HAL库配置I2C详解
STM32F407是一个强大的微控制器,广泛应用于嵌入式系统中。在许多应用中,我们需要使用I2C总线来与传感器、EEPROM、显示屏等外设进行通信。本文将详细介绍如何使用STM32 HAL库来配置和使用I2C接口。
24 2