芯片型号是STM32L431,写一个操作寄存器初始化串口3的函数,传输模式是USART_CR1_TE,波特率是115200
时间: 2024-05-09 12:22:07 浏览: 14
好的,根据您的要求,以下是操作寄存器初始化串口3的函数:
```c
void InitUART3(void)
{
// 使能UART3时钟
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_0 | GPIO_AFRH_AFSEL11_0);
// 配置波特率
USART3->BRR = SystemCoreClock / 115200;
// 配置传输模式为发送
USART3->CR1 |= USART_CR1_TE;
// 使能USART3
USART3->CR1 |= USART_CR1_UE;
}
```
以上代码可以完成芯片型号为STM32L431的操作寄存器初始化串口3的功能,传输模式为USART_CR1_TE,波特率为115200。如果您有需要,欢迎进行更改和调整。
相关问题
芯片型号是STM32L431,写一个操作寄存器初始化串口3的函数。传输模式是USART_CR1_TE,配置为波特率为115200的8N1模式
好的,下面是操作寄存器初始化串口3的函数代码:
```c
void init_USART3(void)
{
// 使能 USART3 时钟
RCC->APB1ENR1 |= RCC_APB1ENR1_USART3EN;
// 配置 GPIO PB10 和 PB11 作为 USART3 的 TX 和 RX 引脚
GPIOB->MODER &= ~(GPIO_MODER_MODE10 | GPIO_MODER_MODE11);
GPIOB->MODER |= (GPIO_MODER_MODE10_1 | GPIO_MODER_MODE11_1);
GPIOB->AFR[1] |= (7 << GPIO_AFRH_AFSEL10_Pos) | (7 << GPIO_AFRH_AFSEL11_Pos);
// 配置 USART3 Control Register 1
USART3->CR1 &= ~(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS | USART_CR1_OVER8);
USART3->CR1 |= USART_CR1_TE;
// 配置 USART3 Control Register 2
USART3->CR2 &= ~USART_CR2_STOP;
// 配置 USART3 Control Register 3
USART3->CR3 &= ~(USART_CR3_CTSE | USART_CR3_RTSE);
// 配置 USART3 Baud Rate Register
USART3->BRR = (SystemCoreClock / 115200);
// 使能 USART3
USART3->CR1 |= USART_CR1_UE;
}
```
这个函数会使能 STM32L431 的 USART3,配置 PB10 和 PB11 作为 USART3 的 TX 和 RX 引脚,以及配置相应的寄存器,实现 115200 的波特率和 8N1 的数据传输模式。
芯片型号是STM32L431,写一个操作寄存器初始化串口3的函数
这是一个操作寄存器初始化串口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的波特率,并配置了控制寄存器以启用发送和接收操作。
相关推荐
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)