Altiumhu 发表于 2022-1-10 18:39

HC32L130单片机 如何支持波特率115200

为什么华大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_tstcConfig;
    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低的话,估计误差太大。

tpgf 发表于 2022-2-4 17:08

基本上都是支持的吧

paotangsan 发表于 2022-2-4 17:12

误差不太大的话 基本上都是可以的

renzheshengui 发表于 2022-2-4 17:18

其实所有的波特率都是有容差范围的

wakayi 发表于 2022-2-4 17:25

其实在这方面我感觉ti做的不错

wowu 发表于 2022-2-4 17:34

应该有一个专门的文档说明波特率的事情

xiaoqizi 发表于 2022-2-4 17:43

是的 肯定支持 不过有一定的偏差
页: [1]
查看完整版本: HC32L130单片机 如何支持波特率115200