串口初始化设置(波特率:19200, 数据位:8, 校验位:None, 停止位:1, 流控:None)
static void App_UartInit(void)
{
uint16_t timer=0;
stc_uart_baud_cfg_t stcBaud;
stc_bt_cfg_t stcBtCfg;
stc_uart_cfg_t stcCfg;
DDL_ZERO_STRUCT(stcBaud);
DDL_ZERO_STRUCT(stcBtCfg);
//外设时钟使能
Sysctrl_SetPeripheralGate(SysctrlPeripheralBt,TRUE);//模式0/2可以不使能
Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1,TRUE);
stcBaud.bDbaud = 0u;//双倍波特率功能
stcBaud.u32Baud = 19200u;//更新波特率位置
stcBaud.enMode = UartMode1; //计算波特率需要模式参数
stcBaud.u32Pclk = Sysctrl_GetPClkFreq(); //获取PCLK
timer = Uart_SetBaudRate(M0P_UART1, &stcBaud);
stcBtCfg.enMD = BtMode2;
stcBtCfg.enCT = BtTimer;
Bt_Init(TIM1, &stcBtCfg);//调用basetimer1设置函数产生波特率
Bt_ARRSet(TIM1,timer);
Bt_Cnt16Set(TIM1,timer);
Bt_Run(TIM1);
stcCfg.enRunMode = UartMode1;//测试项,更改此处来转换4种模式测试
Uart_Init(M0P_UART1, &stcCfg);
///< UART中断配置
Uart_EnableIrq(M0P_UART1, UartRxIrq);
Uart_ClrStatus(M0P_UART1, UartRC);
EnableNvic(UART1_IRQn, IrqLevel2, TRUE);
}
|