STM32 串口奇偶校验
时间: 2023-12-29 19:04:16 浏览: 117
STM32串口实验
STM32串口奇偶校验可以通过寄存器进行设置。具体步骤如下:
1. 打开USART_CR1寄存器,使能串口。
```c
USART1->CR1 |= USART_CR1_UE;
```
2. 设置奇偶校验位。USART_CR1寄存器的PS位用于设置奇偶校验位,0表示偶校验,1表示奇校验。
```c
USART1->CR1 |= USART_CR1_PCE; // 使能奇偶校验
USART1->CR1 &= ~USART_CR1_PS; // 设置偶校验
```
3. 设置停止位。USART_CR2寄存器的STOP位用于设置停止位,00表示1个停止位,01表示0.5个停止位,10表示2个停止位,11保留。
```c
USART1->CR2 &= ~USART_CR2_STOP; // 设置1个停止位
```
4. 设置数据位。USART_CR1寄存器的M位用于设置数据位,0表示8位数据位,1表示9位数据位。
```c
USART1->CR1 &= ~USART_CR1_M; // 设置8位数据位
```
5. 设置校验位。USART_CR1寄存器的M位用于设置校验位,0表示无校验,1表示有校验。
```c
USART1->CR1 |= USART_CR1_PCE; // 使能奇偶校验
```
6. 最后,需要设置波特率。USART_BRR寄存器用于设置波特率,具体的计算公式为:波特率 = 时钟频率 / (16 * USARTDIV)。其中,USARTDIV为一个12位的寄存器,需要根据波特率和时钟频率进行计算。
```c
USART1->BRR = 0x1D4C; // 波特率为115200,时钟频率为72MHz
```
阅读全文