1 功能需求
利用USART串口实现电脑与STM32单片机的命令交互,类似Linux系统一样的shell功能,通过这个功能掌握STM32单片机USART串口的基本用法,具体我们实现以下功能:
读取STM32单片机的唯一序列号;
读取STM32单片机的当前时间;
重启STM32单片机。
2 实现思路
2.1 命令格式设计
采用文本形式的命令格式,每一个命令后面跟换行符,STM32单片机通过读取收到的串口数据,然后判断数据里有无换行符,通过换行符判断命令的截止,然后再对数据进行解析,解析出命令,依据设定的命令来执行不同的操作,具体命令设计:
读取STM32单片机的唯一序列号:readsn
读取STM32单片机的当前时间:date
重启STM32单片机:reboot
2.2 STM32单片机程序基本流程
![4ba56b035be3f0b1894e836637cf9af1.png](https://i-blog.csdnimg.cn/blog_migrate/1c3a6ed3ab83974d807a342e76a6ebbb.jpeg)
3 具体步骤
3.1 示例工具
NUCLEO-F103RB 开发板
Keil uVision5.252
3.2 单片机初始化配置,串口配置参数:
![901b15bbc6aa8322e80056f553103545.png](https://i-blog.csdnimg.cn/blog_migrate/6334e9c523859c5534990281315fcff2.jpeg)
![3c56b71e8b2a19a63c19c690c229e0fc.png](https://i-blog.csdnimg.cn/blog_migrate/59f06d827bf718b75bfbd8c9e3660b56.jpeg)
![6feb20037fa17f8a5bec6e3af5eb20b7.png](https://i-blog.csdnimg.cn/blog_migrate/ea8317ba8b7a0170f7dbdb3fbe3b2a8e.jpeg)
3.3 示例代码
判断命令:
![5459b6921a622a9230480c4e7e8d3905.png](https://i-blog.csdnimg.cn/blog_migrate/fdc00df784513c0b16dd6741f16188fb.jpeg)
初始化代码:
![a929cdf77fe3edc4300e38b0a9931318.png](https://i-blog.csdnimg.cn/blog_migrate/29dba859bada55a7a62c19ca9681be7f.jpeg)
主循环代码:
![779acb0b2f8387bf24e24360f9c38ad6.png](https://i-blog.csdnimg.cn/blog_migrate/8c6799bcb02f5cb5826be520d22bef5d.jpeg)
![f9529d75180a0d13e0fdaf726645aec3.png](https://i-blog.csdnimg.cn/blog_migrate/52a4b773d3aafdc4d291fec2c2021a25.jpeg)