前言
本次通过CubeMx+proteus进行stm32串口仿真
具体功能:
1、开机后,向串口1发送“Welcome”
2、串口1接收字节指令“0xa1",打开LED1,回传“LED1 OPEN!”
3、串口1接收字节指令“0xa2",关闭LED1,回传“LED1 Close!”
4、在串口发送过程中,打开LED2作为发送数据指示灯
一、相关知识点
二、电路搭建与硬件配置
1、proteus电路搭建
1、COMPIM元件
作用:把仿真电路中的数字量映射到计算机的物理端口
接法:将stm32的TX与COMPIM的TX相连,RX与RX相连,而不是像实物那样交叉相连(RX连TX,TX连RX)。
2、VIRTUAL TERMINAL虚拟终端元件
作用:查看发送的数据信息
接法:将stm32的TX与虚拟终端的RX相连,RX与TX相连
3、整体电路:
2、CubeMx硬件电路配置
三、串口通讯函数与程序编写
1、串口通讯函数
1、阻塞式发送函数
注意:要等待数据发完才能做其他任务(10000为超时等待10000ms后结束发送)
2、非阻塞式发送函数
注意:在阻塞式发送的基础上可以中断(Interrupt)
3、阻塞式接收函数
要等待数据接收完才能做其他任务,所以不推荐
4、非阻塞式接受
5、串口发送完毕中断回调函数
2、程序编写
1、宏定义与数据变量设定
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
#define LED1_ON()