一、功能需求分析
在中断机制实现按键检测的案例之后,我们介绍串行通信,而使用串行通信的方式采用中断方式实现,即在完成发送或者接收数据后,会触发串行通信的发送和接收callback函数,执行回调函数功能。
在单片机通信方式中,通常有两种,串行通信和并行通信。
串行通信即一次只发送一位数据,多次发送完成。
并行通信即一次发送多位数据,一次完成。
下面有一张关于两种通信方式的基础知识点,概括很全面,大家可以自己理解。
需求分析:
- 仿真方式,实现COM1和COM2的通信,COM2发送命令,COM1执行命令并返回结果;
- 接线方式,COM1连接STM32,RXD和TXD并联,STM32使用第一组串口线,PA9(TXD)PA10(RXD);PA0-PA2分别连接LED1-LED3;
- 通信协议:
COM2发送字符a,LED1熄灭;
COM2发送字符b,LED1点亮;
COM2发送字符c,LED2熄灭;
COM2发送字符d,LED2点亮;
COM2发送字符e,LED3熄灭;
COM2发送字符f,LED3点亮;
使用到的工具:
工具软件 | 功能 |
---|---|
Proteus | 绘制原理图 |
STM32CubeMX | 图形化配置生成MDK项目 |
MDK | 编写下位机代码 |
XCOM | 串口调试住手 |
VSPD | 虚拟串口驱动 |
用到的工具比较多,这里梳理一下思路:
本案例的功能是通过串口通信实现命令下发和命令执行以及结果反馈的功能。
具体实现选择的是通过单个字符,比如‘a’命令,点亮LED1;
但是如果想实现串口通信,需要提供两个物理串口,而且是不同PC机的,同一台PC机无法实现自己的两个串口通信。
所以,这里使用到了VSPD,它可以将一台PC的两个端口虚拟连接,实现数据收发,解决了我们硬件的限制。