#include "My_Usart.h"
void Init_Usart(u32 bound)
{
RCC->APB2ENR |= 1<<2; //使能GPIOA时钟
RCC->APB2ENR |= 1<<14; //使能USART1时钟
GPIOA->CRH &= 0XFFFFF00F; //PA9 TX 复用推挽输出
GPIOA->CRH |= 0X000004B0;//PA10 RX 浮空输入
USART1->BRR = 0X1D4C; //配置波特率
USART1->CR1 |= 0X200C; //配置控制寄存器
//10000000001100 使能USART1 无奇偶校验 字长为8 发送,接收使能
USART1->CR1 |= 1<<8; //PE中断使能
USART1->CR1 |= 1<<5; //接收中断使能
}
int fputc(int ch,FILE *f) //重定向
{
USART_SendData(USART1,(uint8_t) ch);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)==RESET);
return (ch);
}
如有什么不懂,请参考STM32中文参考手册543页。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』