1 / 17
文档名称:

stm32串口通信协议简单教程.docx

格式:docx   大小:212KB   页数:17页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

stm32串口通信协议简单教程.docx

上传人:guoxiachuanyue006 2022/5/29 文件大小:212 KB

下载得到文件列表

stm32串口通信协议简单教程.docx

文档介绍

文档介绍:STM32串口通信协议简单教程
一、修改串口UART1IT工程模版
用KeilMDK打开短学期资料中的工程示例f串口—UART1IT示例,查看
:
Vi
图1UART1IT串口示例代码
打开文件列表n函数的while主循环中,添加发送按键状态代码如图8所示。同时,将main函数中的Helloworld字符串发送行注释掉,如图9所示。为使按键响应灵敏,。
注意,资料包里面的串口调试助手UartAssit软件容易造成虚拟串口占用,甚至使系统崩溃。考虑到使用方便,推荐使用sscom42软件。这里给大家一个下载地址

图8main主函数中的发送按键状态代码
入‘人厂
图9注释Helloworld发送行
编译并下载程序后,接上串口调试助手,我们可以看到调试助手窗口中的结果如
图10所示。由图中可以看到,调试助手接收到”6MK2D6MK2U”,这表示实验板按键K2被按下和放开两个动作。
图10串口调试助手结果
接下来,为完成协议要求,在main函数之前添加校验码函数代码如图11所示。
6MI2D6MK2U
打幵文件IIS件茗
Isscom4丄测试版作昔:聂<1強(TT1Emaikmcu52©]t2Q07.''9
昂Zl曰⑹3工|工诩吕口|爾厂HE焜示心杠傑存彌□"拆述:f打羽谥由
俸止|保存窗口|清除窗口|龍矿I円
发送文件I
图11添加校验码函数代码
在发送按键状态帧之前,添加校验码函数如图12所示。
图12添加校验码操作
编译并下载程序后,接上串口调试助手,可以看到STM32串口发送按键状态数
据帧如图13所示。如图中所示,当按键K3按下时,STM32发送“6MK3D45”其16进
制数据为“364D4B334434350D0A”,0x36+0x4D+0x4B+0x33+0x44=0x0145,保留一个字节则为0x45。0x45表示为两字节ASCII码,就是字符'4'和字符'5',即对应“6MK3D45”最后两个字符。由此可知,按键状态发送功能完成。
<20汪已打讦36K即詔”1「元確无潇更
1
閤L3'芫施的按柚状态发送蝕鬟
3揺收爲灯揀制命专
衙单的亮灯控刨命令加卜所痫
*
示血圈141
0x3]-0138
毗端发选亮烁祯头4-[TH2D+fl号亠檯整和+牯尾
H冲灯号沟丄〜B的ASCIII虬即0k31-AM3S胆瑞发送知:心W^+OKlU+ff号*橙豔和4啊再
WYf^.
CTS^lD5fcnRL»=l
图14亮灯命令接收状态转换图
图15串口接收中断程序1
图16串口接收中断程序2
编译并下载程序,接上串口调试助手。如图17所示,在调试窗口中选中“HEX发送”,然后在下方的发送行填入字符串“364D2B3100000D”。点击“发送”按钮则可以看到接收栏中显示“0K!”字符串。在此,校验码0x000x00没有任何意义,只是占个位置。
图17串口调试助手发送数据
接下来,在main函数之前添加接收数据校验函数如图18所示。
|b咋BJStJSSiJJlEmail;mcl&******@
CK!
V
8

OOC-
雄r徉I■止Ifirn;口I*耀□]砸dj
.-
关闍車n聲厂厕堆云"曲口鼻闻苗口如乐茲匚rtifu由
rdirratsr审對碉lyr^rA
r詡城逐F晅卫空葉Wftl|?C84T审B山朋匚砂丽満粒川两
图18接收数据校验函数
修改串口接收中断中的帧尾回送0K字符串程序行,如图19所示。为了看到显
示效果将main函数中的流水灯部分代码注释掉,如图20所示。
图19帧尾校验功能代码
图20main函数注释流水灯代码
编译成功并下载程序后,接上串口调试助手,如图21所示。在调试窗口下方的发
送行中填入发送字符串“364D2B3100000D”,选中“HEX发送”,点击发送按钮后可以看到接收栏中显示“Errchk,DF,00”字符串,表示正确的校验码应为字符'D'和字符'F'的AS