打印
[技术问答]

HC32F005 SDK串口例子设置9600正常115200异常

[复制链接]
849|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yicool|  楼主 | 2021-4-15 12:16 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如题 HC32F005 SDK串口例子设置9600正常115200异常
配置我参考sdk的例子
    //外设时钟使能
    Sysctrl_SetPeripheralGate(SysctrlPeripheralBt,TRUE);//模式0/2可以不使能
    Sysctrl_SetPeripheralGate(SysctrlPeripheralUart1,TRUE);

    stcBaud.bDbaud  = 0u;// 波特率功能 0:单倍波特率; 1:双倍波特率
    stcBaud.u32Baud = 115200u;//更新波特率位置
    stcBaud.enMode  = UartMode3; //计算波特率需要模式参数  注意跟 stcCfg.enRunMode = 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_ARRSet(TIM1,(0x10000-7)); //datasheet 有参考  78=9600 7=115200
//    Bt_Cnt16Set(TIM1,(0x10000-7));
    Bt_Run(TIM1);
请问为什么出现数据不对呢?
应该如何配置

使用特权

评论回复
沙发
binoo7| | 2021-4-15 12:45 | 只看该作者
终于有人发现了啊,这个问题我也遇到过,关键点不是你设置波特率的问题,是时钟分频的问题,如果波特率很大的话用1分频没问题,但是如果波特率很小比如9600的话就需要设置一下分频了,我设置过16分频就成功了,还有就是可以仿真看一下,他的波特率设置是软件实现的,相当于需要算出给波特率计数器的计数值,不是硬件实现的

使用特权

评论回复
板凳
yicool|  楼主 | 2021-4-15 17:54 | 只看该作者
binoo7 发表于 2021-4-15 12:45
终于有人发现了啊,这个问题我也遇到过,关键点不是你设置波特率的问题,是时钟分频的问题 ...

请问时钟分频  指的是串口对应的定时器的分频 系数吗?
   stcBtCfg.enMD = BtMode2;
    stcBtCfg.enCT = BtTimer;
    Bt_Init(TIM1, &stcBtCfg);//调用basetimer1设置函数产生波特率
    Bt_ARRSet(TIM1,timer);
    Bt_Cnt16Set(TIM1,timer);
    Bt_Run(TIM1);

定时器设置只有这些 没发现分频怎么设置?
能分享这个怎么配置吗?  我想要设置115200的波特率

使用特权

评论回复
地板
zouzichun520| | 2021-4-20 15:47 | 只看该作者
yicool 发表于 2021-4-15 17:54
请问时钟分频  指的是串口对应的定时器的分频 系数吗?
   stcBtCfg.enMD = BtMode2;
    stcBtCfg.enCT  ...

哥们,我试验过华大005如果用内部晶振跑115200波特率会导致误码率很大,唯一办法是挂外部32M晶振

使用特权

评论回复
5
martinhu| | 2021-4-20 16:20 | 只看该作者
你要计算当前系统时钟,是否支持你所需要的波特率。如果使用内部时钟RCH,只有RCH24M的双波特率设置才支持115200……
MCU不是计算机,需要考虑时钟,不是什么波特率什么设置都可以。

使用特权

评论回复
6
kxsi| | 2021-5-11 20:31 | 只看该作者
是不是有干扰啊

使用特权

评论回复
7
nawu| | 2021-5-11 20:32 | 只看该作者
这个是不是一个bug啊

使用特权

评论回复
8
qcliu| | 2021-5-11 20:32 | 只看该作者
异常的表现是什么呢

使用特权

评论回复
9
tfqi| | 2021-5-11 20:32 | 只看该作者
用示波器看看波特率是多少

使用特权

评论回复
10
wiba| | 2021-5-11 20:33 | 只看该作者
会不会是时钟配置的问题啊

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝