[技术问答] HC32L130单片机 如何支持波特率115200

[复制链接]
155|4
手机看帖
扫描二维码
随时随地手机跟帖
Altiumhu|  楼主 | 2022-1-10 18:39 | 显示全部楼层 |阅读模式
为什么华大HC32L130单片机 如何不支持波特率115200

/**********************************************************************
* Function:           AppUser_UART2_Config
* Description:  ´®¿ÚÐÅÏ¢
* Input:               void
* Output:             
* Return:             void
* Others:          
* Modify Date:    Version:    Author:              Modification:
* -----------------------------------------------
* 2017-05-31          V1.0              Hu Weiping                  
**********************************************************************/
void AppUser_UART0_Config(uint16_t BaudRate)
{
       
    uint16_t u16Scnt = 0;
       
    stc_uart_config_t  stcConfig;
    stc_uart_irq_cb_t stcUartIrqCb;
    stc_uart_multimode_t stcMulti;
    stc_uart_baud_t stcBaud;
   
    en_uart_mmdorck_t enTb8;

    DDL_ZERO_STRUCT(stcConfig);
    DDL_ZERO_STRUCT(stcUartIrqCb);
    DDL_ZERO_STRUCT(stcMulti);
    DDL_ZERO_STRUCT(stcBaud);
   
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio,TRUE);
    Sysctrl_SetPeripheralGate(SysctrlPeripheralDma,TRUE);
    Sysctrl_SetPeripheralGate(SysctrlPeripheralUart0,TRUE);
       
    AppUser_Uart0_PortInit();     //ÅäÖö˿Ú
   
    stcUartIrqCb.pfnRxIrqCb   = Rx_UART0_IntCallback;
    stcUartIrqCb.pfnTxIrqCb   = NULL;
    stcUartIrqCb.pfnRxFEIrqCb = UART0_ErrIntCallback;
    stcUartIrqCb.pfnPEIrqCb   = UART0_PErrIntCallBack;
    stcUartIrqCb.pfnCtsIrqCb  = UART0_CtsIntCallBack;
    stcConfig.pstcIrqCb = &stcUartIrqCb;
    stcConfig.bTouchNvic = TRUE;
  
       
    stcConfig.enRunMode = UartMode1;//??3
    stcConfig.enStopBit = Uart1bit;  

    stcMulti.enMulti_mode = UartNormal;//??????
    enTb8 = UartEven;//???
    Uart_SetMMDOrCk(UARTCH0,enTb8);
    stcConfig.pstcMultiMode = &stcMulti;
   
    Uart_Init(UARTCH0, &stcConfig);   //ÅäÖö˿Ú
   
    Uart_SetClkDiv(UARTCH0,Uart8Or16Div);
    stcBaud.u32Pclk = Sysctrl_GetPClkFreq();
    stcBaud.enRunMode = UartMode1;
    stcBaud.u32Baud = BaudRate;
    u16Scnt = Uart_CalScnt(UARTCH0,&stcBaud);
    Uart_SetBaud(UARTCH0,u16Scnt);
   
    Uart_EnableIrq(UARTCH0,UartRxIrq);
    Uart_ClrStatus(UARTCH0,UartRC);
    Uart_EnableFunc(UARTCH0,UartRx);
    Uart_DisableIrq(UARTCH0,UartTxIrq);
               
               
                         g_IR_RXCunt = 0;
}

使用特权

评论回复
查询无结果| | 2022-1-11 09:12 | 显示全部楼层
按照手册算一下,华大M0的手册写的很详细

使用特权

评论回复
单片小菜| | 2022-1-11 10:55 | 显示全部楼层
感觉华大的手册,已经是比较详细的了。别人家的做的没有华大的好。

使用特权

评论回复
七毛钱| | 2022-1-11 11:27 | 显示全部楼层
多看看手册

使用特权

评论回复
martinhu| | 2022-1-11 13:57 | 显示全部楼层
按公式算,理论和实际CNT值误差不要超过1%
不过主频和PCLK低的话,估计误差太大。

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则