#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);
/*************************************************************************/