电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

stm32串口通信协议简单教程VIP免费

stm32串口通信协议简单教程_第1页
1/11
stm32串口通信协议简单教程_第2页
2/11
stm32串口通信协议简单教程_第3页
3/11
STM32 串口通信协议简单教程 一、修改串口UART1IT 工程模版 用Keil MDK 打开短学期资料中的工程示例→串口→UART1IT 示例,查看 main.c 代码如图 1 所示: 图 1 UART1IT 串口示例代码 打开文件列表中的stm32f10x_it.c 文件,找到 UART1 中断函数如图 2 所示代码: 图 2 UART1 串口中断函数 为方便起见,将整个USART1_IRQHandler 函数剪切到main.c 文件末尾如图3 所示。并删除 stm32f10x_it.c 文件中的 sp 变量定义,如图4 所示。 图3 移动串口中断函数 图4 去除 stm32f10x_it.c 中的 sp 变量声明 重新编译一次工程,看看修改是否出现错误,编译失败出现错误则需仔细检查刚才的修改是否正确。编译成功,下载工程到实验板,关闭下载程序。将实验板 BOOT 跳线至正常运行模式并重新上电。打开串口调试助手,选择实验板 USB 虚拟串口并打开,如图5 所示。可以看到图中窗口不停的接收到“Hello world!”这样的字符串数据。在发送区域输入字符 1,点击发送按钮,可以观察到实验板的流水灯速度变快了很多。 图5 PC 端串口调试助手和STM32 进行串口通信 二、简单串口协议实现 1. 发送按键状态 首先,了解串口协议要求如下:  协议数据帧头:0x36 0x4D(2 字节)  协议数据帧尾:0x0D(1 字节)  校验方式:帧头与有效数据的单字节加和ASCII 码(2 字节) 如 0x36 0x4D 0x2B 0x31 加和为 0xDF,那么最后的校验码为 0x44 0x46 两个字节,实际发送帧为 0x36 0x4D 0x2B 0x31 0x44 0x46 0x0D  按键状态 单片机发送:帧头+0x4B+键码+状态+校验和+帧尾 其中键码用0x32 和0x33 对应按键 K2 和K3,状态 0x44 和0x55 对应按键按住和松开 在 main 函数之前,添加按键扫描代码如图6 所示,然后在 main 函数中,添加 sendstr数组,key 和oldkey 两个整数变量,如图7 所示。 图6 添加按键扫描函数 图7 添加相关变量 接下来,在main 函数的while 主循环中,添加发送按键状态代码如图8 所示。同时,将 main 函数中的Hello world 字符串发送行注释掉,如图9 所示。为使按键响应灵敏,可以将 main.c 文件开头的sp 变量初始值由 100 改为 10。 注意,资料包里面的串口调试助手 UartAssit 软件容易造成虚拟串口占用,甚至使系统崩溃 。考虑 到使 用方便 ,推荐 使用 sscom42 软件。 这里 给大家 一 个下载 地址http://...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

stm32串口通信协议简单教程

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部