推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

USART收发数据包 HEX数据包模式 keil教程开发 原创 详细

更新时间:2024-09-11 09:21:08 大小:23M 上传用户:mulanhk查看TA发布的资源 标签:usartkeil教程 下载积分:2分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

项目内容:

在USART串口模式的基础上,利用STM32CUBEMX平台,实现HEX模式数据包的发送。

1. STM32cubxemx的详细配置及参数设置

2. 对HEX数据包发送原理的讲解

3. 项目详细源代码和内容注释

4. 最终效果实现图

以前项目的USART是单字节的数据收发,但是实际应用中,往往不可能都是单字节的,一般都是多个字节组合成的数据包。下面介绍如何利用单个字节的收发改造成数据包的收发实现多字节的通信。


一、HEX数据包

用自定义的数据来作为包头和包尾,下面使用0xFE作为包尾。为了避免有效载荷中也出现包头和包尾情况。可以通过以下方法来优化

1. 定义包头包尾时尽量有效载荷中不可能出现的数据,也可以使用多字节来表示包头和包尾。

2. 规定有效载荷固定长度,接收时检测到包头时,就继续接收有效载荷的个数,然后再判断是不是包尾。

image.png

项目详细配置

image.png

USART的串口配置和参数设置。

image.png


时钟树的设置,选用外部晶振,72MHZ,选用2分频。

项目存储路径设置

image.png

项目代码编写

image.png

编写函数实现发送多个字节的数据包的功能。

其中的0xFF是开始发送数据的信号,0xFE是结束发送数据的信号。


重写中断回调函数

image.png

定义RxState,用于接收发送的数据信息,再分三种情况进行判定后接收数据,处理数据。

最后要打开中断接收,为了下次接收数据做准备。

image.png


对定义过的字节数组进行数据存储,并发送数据包。


主循环操作内容编写

image.png

不断读取数据接收标志位,若标志位是1,就在OLED屏上显示数据。


最终效果演示图

image.png

image.png

部分文件列表

文件名大小
USART_HexPacket/
USART_HexPacket/.mxproject7KB
USART_HexPacket/Core/
USART_HexPacket/Core/Inc/
USART_HexPacket/Core/Inc/gpio.h1KB
USART_HexPacket/Core/Inc/main.h2KB
USART_HexPacket/Core/Inc/OLED.h1KB
USART_HexPacket/Core/Inc/OLED_Font.h
USART_HexPacket/Core/Inc/stm32f1xx_hal_conf.h
USART_HexPacket/Core/Inc/stm32f1xx_it.h2KB
USART_HexPacket/Core/Inc/usart.h1KB
...

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载