STM32串口与定时器
一、串行接受的相关知识点
笔者使用的是正点原子精英开发板STM32F103ZET6 ,具体的串口分布如下图所示,有两个串口USART1 和USART2
二、STM32CubeMX中关于USART的配置
三、HAL库中重要的收发函数
查看一下串口的一些发送函数:
非阻塞式的发送函数,会在发送完成之后触发中断,我们可以在中断回调函数中,进行一些处理,举个例子:
下面查看一下,串口的一些接收函数:
四、串口调试助手
笔者使用的是正点原子精英开发板STM32F103ZET6 ,使用正点原子的串口调试助手XCOM ,配置XCOM的具体方法如下(非正点原子开发板也能使用,串口调试助手是通用的),
下载地址:串口助手 密码:ipyn 首先进入,安装虚拟串口驱动(如果已经安装可以跳过这一步) 双击,傻瓜式安装 启动windows的设备管理器,可以查看到虚拟串口的存在,那么安装成功
然后进入第二个文件夹,启动XCOM串口助手 可以按照下面的方法来时候,XCOM串口助手
五、串口实验
1、CubeMX的配置与代码结构
首先进行CubeMX的配置
这样就配置好了,接着我们生成代码,打开工程目录,我们可以看到在main.c 中生成了串口的初始化函数 我们查看一下代码结构,和CubeMX生成的其他初始化类似,都是先定义一个对象,再声明该对象的实例是什么
2、实现阻塞式发送
我们在主函数中定义一些需要发送的message
我们在主函数中使用阻塞式发送函数进行简单的信息发送,并且设置一个LED翻转来显示发送是否完成,打开XCOM查看信息
可以看到XCOM成功接受了信息
为了方便调用,我们定义一些宏
#define LED_ON do{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);} while(0)
#define LED_OFF do{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);} while(0)
即可将代码改成这样:
Reference
https://www.361shipin.com/blog/1505619128361226241 https://www.bilibili.com/video/BV1m7411H7oT?p=6&vd_source=d02fb26eb2345ac42c054db0bb8d8864
|