基于STM32CubeMX的串口控制研究
2021-06-16潘苏皖杨凯
潘苏皖,杨凯
(常州信息职业技术学院,江苏常州,213164)
0 简介
现如今,智能家电、智能手机等一系列智能设备的出现方便了人们的活动。尤其是将串口和蓝牙连接,可实现无线数据之间的信息交流。这样可以实现一台设备控制另一台设备。本文通过使用STM32CubeMX[1]软件,利用串口中断实现对LED的控制。
1 硬件平台
本文使用低功耗蓝牙开发板Cannon[2](如图1),以STM32F401RET6[3]为微控制器。为了清楚地知道LED是否由串口接收到的数据控制,因此需要看到数据的发送与接收。由于开发板没有USB转TTL模块,因此需要添加一个独立外接的USB转TTL模块。而本文使用的是CH340模块(如图2)。表1为串口和LED的芯片引脚连接图。

图1 Cannon开发板正面图

图2 CH340模块

表1 芯片串口和LED的芯片引脚连接图
2 应用开发设计
本文使用STM32CubeMX工具软件对串口进行基础配置。在打开的IRA环境中实现串口接收的数据对LED控制并发送信息确认是否真确。
■2.1 STM32CuBeMx配置
打开STM32CubeMx软件,选择STM32F401RET6芯片。然后在Pinout&Configuartion->SystemCore,选择 SYS中Debug的SerialWire进行下载配置;在Con nectivity,选择USART1,在MODE以及Parameter Settings选择Asynchronous,波特率为115200,字长为8位,无奇偶校验位,Date Direction为Receive and Tran smit模式并选择NVIC Settings中断使能实现串口串口模式以及中断配置;在NVIC中对中断优先级进行配置;在Pin out view下,选择PB3引脚为GPIO_Output模式,在SystemCore下选择GPIO进行初始化,将GPIO Output level下设置为高电平,其他为默认,GPIO配置如图3所示。

图3
最终引脚的效果图如图4所示。
选择EWSRM工具,生成工程文件。打开工程文件。
■2.2 软件设计
由于数据寄存器每次只能接收和发送9位,而一个字符为8位,因此串口每次接收和发送一个字符。但是在现实生活中正常情况是发送一串字符来进行设备的控制。因……
