如何初始化stm32 PB10和PB11的usart3的RX和TX的功能
时间: 2024-03-27 15:38:01 浏览: 419
要初始化stm32 PB10和PB11的USART3的RX和TX功能,可以按照以下步骤进行:
1. 打开GPIOB和USART3的时钟。可以使用以下代码:
```
RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; // 打开GPIOB时钟
RCC->APB1ENR |= RCC_APB1ENR_USART3EN; // 打开USART3时钟
```
2. 配置PB10和PB11为复用功能,以便将它们用作USART3的RX和TX引脚。可以使用以下代码:
```
GPIOB->MODER &= ~(GPIO_MODER_MODE10_Msk | GPIO_MODER_MODE11_Msk); // 清除PB10和PB11的模式位
GPIOB->MODER |= (GPIO_MODER_MODE10_1 | GPIO_MODER_MODE11_1); // 将PB10和PB11的模式设置为复用功能
GPIOB->AFR[1] |= (7U << GPIO_AFRH_AFSEL10_Pos) | (7U << GPIO_AFRH_AFSEL11_Pos); // 将PB10和PB11的复用功能设置为USART3
```
3. 配置USART3的波特率、数据位、停止位和校验位等参数。可以使用以下代码:
```
USART3->BRR = (uint16_t)(SystemCoreClock / 115200U); // 设置波特率为115200
USART3->CR1 = USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; // 启用USART3的发送和接收功能
USART3->CR2 = 0; // 设置数据位为8位,停止位为1位,无校验位
USART3->CR3 = 0; // 关闭USART3的流控制功能
```
完成以上步骤后,PB10和PB11将被配置为USART3的RX和TX引脚,并可以使用USART3进行串口通信。
阅读全文