#include "BspPhy.h" //**************************************************************** //****** 串口GPIO初始化函数 //****** 输入参数: 无 //****** 返回值: 无 //**************************************************************** static void PhyUartGpioInit() { CRM->ahben_bit.gpioaen = 1; //使能GPIOA GPIOA->cfgr_bit.iomc9 = 2; //复用模式 GPIOA->omode_bit.om9 = 1; //推挽 GPIOA->odrvr_bit.odrv9 = 1; //较大电流推动 GPIOA->pull_bit.pull9 = 0; //不上拉不下拉 GPIOA->muxh_bit.muxh9 = 1; //MUX1 GPIOA->cfgr_bit.iomc10 = 2; //复用模式 GPIOA->omode_bit.om10 = 1; //推挽 GPIOA->odrvr_bit.odrv10 = 1; //较大电流推动 GPIOA->pull_bit.pull10 = 0; //不上拉不下拉 GPIOA->muxh_bit.muxh10 = 1; //MUX1 } //**************************************************************** //****** 串口参数初始化函数 //****** 输入参数: uint32_t baudrate 波特率 //****** 返回值: 无 //**************************************************************** static void PhyUartCoreInit(uint32_t baudrate) { CRM->apb2en_bit.usart1en = 1; USART1->baudr_bit.div = (12000000 * 10 / baudrate); //(apb_clock * 10 / baud_rate); USART1->ctrl1_bit.pen = 0; //奇偶校验使能关闭 USART1->ctrl1_bit.dbn = 0; //数据位个数8位 USART1->ctrl2_bit.stopbn = 0; //停止位个数1位 USART1->ctrl1_bit.ten = 1; USART1->ctrl1_bit.ren = 1; USART1->ctrl1_bit.uen = 1; } //**************************************************************** //****** 串口初始化函数 //****** 输入参数: 无 //****** 返回值: 无 //**************************************************************** void PhyUartInit() { PhyUartGpioInit(); PhyUartCoreInit(115200); } //**************************************************************** //****** 串口发送字节函数 //****** 输入参数: uint16_t DataByte :发送双字节 //****** 返回值: 无 //**************************************************************** void PhyUartSendByte(uint8_t Byte) { USART1->dt_bit.dt = Byte; while(USART1->sts_bit.tdc == RESET); } void PhyUartSendStr(uint8_t *Str) { while(*Str) { PhyUartSendByte(*Str++); } } /******************************Uart***************************************/ void PhyUartInit(void); void PhyUartSendByte(uint8_t Byte); void PhyUartSendStr(uint8_t *Str); /*************************************************************************/
标签:AT32F421xx,uart,void,GPIOA,USART1,串口,bit,ctrl1,外设 From: https://www.cnblogs.com/lum0126/p/16884430.html