串口是指外设和处理器之间通过数据信号线、地线和控制线等,按位进行传输数据的一种通讯方式。尽管传输速度比并行传输低。但串口可以在使用一根线发送数据的同时用另一根线接收数据。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验位,这些参数在两个通信端口之间必须一致。
由于是应用篇,所以串口通信的实现这里不讲,主要是教会大家,串口通信有什么用,怎么用
(二)讲解
我们先找到串口的引脚
通过查看手册,或者查看代码,可以发现PA9为板子的TX(发送端),PA10为板子的RX(接收端)
我们还需要买一个USB转TTL模块,可以用与电脑和单片机进行串口通信
有了串口模块后,还需要在电脑上安装一个串口调试工具,我这里推荐用微软应用商店里面的,界面简洁明了,而且免费
我们将USB转TTL工具和单片机的串口连接起来
RX----TX
TX----RX
GND----GND
注意工具的端口和单片机的端口是交叉的
然后我们将串口库,导入到system文件夹内,当然也可以直接导入到工程模板内
调用串口库
#include "Serial.h"
复制代码初始化串口
Serial_Init(); //串口初始化
复制代码(三)串口接收
当串口接收到信息时,串口的标志位会为1,然后可以通过Serial_GetRxData函数获取串口的内容
我们这里的代码,可以获取信息,然后将获取到的信息,再发送给电脑串口
if (Serial_GetRxFlag() == 1) //检查串口接收数据的标志位
{
RxData = Serial_GetRxData(); //获取串口接收的数据
Serial_SendByte(RxData); //串口将收到的数据回传回去,用于测试
}
复制代码我们打开软件,串口选择电脑连接的,一般显示CH340的就是
波特率选择9600,要和单片机的波特率一致,单片机的波特率默认9600,也可以在库里面改
然后打开串口
此时,我们发送一个"您好",串口就会返回一个"您好"
(四)串口发送
①Serial_Printf
格式化数据,并且以文本形式发送到串口,如整数、浮点数、字符串等
Serial_Printf("您好");
复制代码②Serial_SendString
发送一个字符串文本
Serial_SendString("三十三");
复制代码③Serial_SendNumber
发送一个数字,有两部分组成,前部分是数字,后部分是数字的位数
Serial_SendNumber(666,3);
复制代码④Serial_SendByte
发送字节数据
uint8_t A = 65; // ASCII 码为 'A'
Serial_SendByte(A);
复制代码