stm32c8t6配置串口3
时间: 2023-08-30 19:05:22 浏览: 115
好的,以下是配置串口3的步骤:
1. 首先,要使能USART3时钟,可以在RCC寄存器中设置:
```c
RCC->APB1ENR |= RCC_APB1ENR_USART3EN; // 使能USART3时钟
```
2. 配置GPIO引脚,将其设置为复用模式,并设置复用功能为USART3:
```c
// 配置TX引脚
GPIOB->CRH &= ~(GPIO_CRH_CNF10 | GPIO_CRH_MODE10); // 复位
GPIOB->CRH |= GPIO_CRH_CNF10_1 | GPIO_CRH_MODE10_0; // 复用推挽输出,最大输出速率50MHz
// 配置RX引脚
GPIOB->CRH &= ~(GPIO_CRH_CNF11 | GPIO_CRH_MODE11); // 复位
GPIOB->CRH |= GPIO_CRH_CNF11_0; // 浮空输入
```
3. 配置USART3的工作模式、波特率、数据位、停止位和校验位等参数:
```c
USART3->CR1 &= ~USART_CR1_UE; // 关闭USART3
USART3->CR1 &= ~(USART_CR1_M | USART_CR1_PCE | USART_CR1_PS); // 8位数据,无校验位
USART3->CR2 &= ~USART_CR2_STOP; // 1位停止位
USART3->BRR = 36000000 / 115200; // 波特率为115200,APB1时钟为36MHz
USART3->CR1 |= USART_CR1_TE | USART_CR1_RE | USART_CR1_UE; // 使能发送、接收和USART3
```
4. 最后,在发送数据时,可以使用USART3的发送函数,例如:
```c
void USART3_SendChar(uint8_t data) {
while (!(USART3->SR & USART_SR_TXE)); // 等待发送缓冲区为空
USART3->DR = data; // 发送数据
}
```
以上就是配置串口3的步骤。需要注意的是,具体的引脚配置和参数设置可能会因为所使用的开发板和外设不同而有所差异,需要根据具体情况进行调整。
阅读全文