写一个STM32的UART初始化代码
时间: 2023-03-01 22:14:46 浏览: 134
STM32 UART 初始化代码如下:
```
#include "stm32f10x.h"
void USART_Init(USART_TypeDef* USARTx, uint32_t baudrate){
// 配置 USARTx 的相关引脚
// ...
// 计算波特率
uint32_t tmpreg = 0x00, apbclock = 0x00;
uint32_t integerdivider = 0x00;
uint32_t fractionaldivider = 0x00;
RCC_ClocksTypeDef RCC_ClocksStatus;
RCC_GetClocksFreq(&RCC_ClocksStatus);
if (USARTx == USART1)
{
apbclock = RCC_ClocksStatus.PCLK2_Frequency;
}
else
{
apbclock = RCC_ClocksStatus.PCLK1_Frequency;
}
integerdivider = ((0x19 * apbclock) / (0x04 * baudrate));
tmpreg = (integerdivider / 0x64) << 0x04;
fractionaldivider = integerdivider - (tmpreg * 0x64);
tmpreg |= ((((fractionaldivider * 0x10) + 0x32) / 0x64)) & ((uint8_t)0x0F);
USARTx->BRR = (uint16_t)tmpreg;
// 使能 USARTx
USARTx->CR1 |= (USART_CR1_RE | USART_CR1_TE);
USARTx->CR1 |= USART_CR1_UE;
}
```
希望这个代码能帮到你!