一.串口概述
1.定义
串口通信是一种设备间非常常用的串行接口,以比特位的形式发送或接收数据,电子工程师经常使用这种方式来调试数据。
2.帧格式
2)奇偶校验
二.库函数
很多模块默认出厂的硬件参数配置如下:
配置串口,遵循“9600,N,8,1”。
波特率:9600bps
无校验位:N
数据位:8
停止位:1
对于ARM的高速芯片,波特率默认上浮到115200bps。
1.代码初始化思路:
a.硬件时钟
端口A硬件时钟使能
串口1硬件时钟使能
b.硬件配置
引脚配置为复用功能模式
引脚连接到串口1硬件
配置串口相关参数:波特率、校验位、数据位、停止位
配置串口中断
编写中断服务函数
c.硬件控制
串口1发送数据
串口1读取数据
注:
若出现乱码,波特率是否一致。
三.代码示例
1.初始化串口(TX:PA9 RX:PA10为例子)
static USART_InitTypeDef USART_InitStructure;
static NVIC_InitTypeDef NVIC_InitStructure;
static GPIO_InitTypeDef GPIO_InitStructure;
// 初始化串口(TX:PA9 RX:PA10)
void USART1_Init(uint32_t baudrate)
{
/* 1.打开GPIO时钟 */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
/* 打开串口1时钟 */
RCC_APB2PeriphClockCmd(RCC_APB2Perip