打印
[技术问答]

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

[复制链接]
1674|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者
多看看手册

使用特权

评论回复
5
martinhu| | 2022-1-11 13:57 | 只看该作者
按公式算,理论和实际CNT值误差不要超过1%
不过主频和PCLK低的话,估计误差太大。

使用特权

评论回复
6
tpgf| | 2022-2-4 17:08 | 只看该作者
基本上都是支持的吧

使用特权

评论回复
7
paotangsan| | 2022-2-4 17:12 | 只看该作者
误差不太大的话 基本上都是可以的

使用特权

评论回复
8
renzheshengui| | 2022-2-4 17:18 | 只看该作者
其实所有的波特率都是有容差范围的

使用特权

评论回复
9
wakayi| | 2022-2-4 17:25 | 只看该作者
其实在这方面我感觉ti做的不错

使用特权

评论回复
10
wowu| | 2022-2-4 17:34 | 只看该作者
应该有一个专门的文档说明波特率的事情

使用特权

评论回复
11
xiaoqizi| | 2022-2-4 17:43 | 只看该作者
是的 肯定支持 不过有一定的偏差

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

118

帖子

2

粉丝