芯片型号是STM32L431,写一个操作寄存器初始化串口3的函数
时间: 2024-05-02 17:22:51 浏览: 145
这是一个操作寄存器初始化串口3的示例函数:
```c
void init_uart3(void){
/* 打开串口3时钟 */
RCC->APB1ENR1 |= RCC_APB1ENR1_USART3EN;
/* 配置引脚的模式和复用 */
GPIOB->MODER &= ~(GPIO_MODER_MODE10_Msk | GPIO_MODER_MODE11_Msk);
GPIOB->MODER |= (GPIO_MODER_MODE10_1 | GPIO_MODER_MODE11_1);
GPIOB->AFR[1] &= ~(GPIO_AFRH_AFSEL10_Msk | GPIO_AFRH_AFSEL11_Msk);
GPIOB->AFR[1] |= (7U << GPIO_AFRH_AFSEL10_Pos) | (7U << GPIO_AFRH_AFSEL11_Pos);
/* 配置串口3的波特率 */
USART3->BRR = 277U;
/* 配置串口3的控制寄存器 */
USART3->CR1 &= ~(USART_CR1_M_Msk | USART_CR1_PCE_Msk | USART_CR1_TE_Msk | USART_CR1_RE_Msk);
USART3->CR1 |= (USART_CR1_TE | USART_CR1_RE);
USART3->CR2 &= ~(USART_CR2_STOP_Msk);
USART3->CR2 |= (0U << USART_CR2_STOP_Pos);
USART3->CR3 &= ~(USART_CR3_TXFTIE_Msk | USART_CR3_RXFTIE_Msk | USART_CR3_HDSEL_Msk);
}
```
该函数的作用是初始化芯片上的串口3寄存器,以实现串口3的基本通信功能。在此示例中,我们首先打开了串口3的时钟,然后根据具体的引脚配置模式和复用。接着,我们设置了串口3的波特率,并配置了控制寄存器以启用发送和接收操作。
阅读全文