[综合信息] HC32F460怎么设置CAN的波特率

[复制链接]
305|10
手机看帖
扫描二维码
随时随地手机跟帖
请叫我污春|  楼主 | 2022-5-6 14:51 | 显示全部楼层 |阅读模式
请问这个芯片CAN的波特率是怎么设置的啊,如果直接用外部的高速振荡器那频率不是8m了吗,can的速率最高才1m,还有例程里面配置can时钟的代码在哪里啊,找蒙蔽了,手册里面的时钟树,计算公式都看了,但是在程序里面就是看不懂在哪里设置时钟的,求大哥们告知一下,多谢多谢

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-6 14:57 | 显示全部楼层
有大哥会吗,求解惑

使用特权

评论回复
wubangmi| | 2022-5-6 15:45 | 显示全部楼层
275786274d1fd5af1c.png
用户手册是这么描述的,也就是说,你把外部晶振使能后,他就自动作为CAN的时钟了,其他地方不需要你配置

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-6 16:00 | 显示全部楼层
wubangmi 发表于 2022-5-6 15:45
用户手册是这么描述的,也就是说,你把外部晶振使能后,他就自动作为CAN的时钟了,其他地方不需要你配置 ...

我也看到这个话了,但是不知道它的波特率到底是多大啊,我外部用的是8m晶振,模板给的PRESC是0,那算下来波特率有8m了, 而且要是改变波特率的话该怎么改啊,这样的话外部晶振不同的话波特率就不一样了啊,反正很懵逼

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-6 16:04 | 显示全部楼层
本帖最后由 请叫我污春 于 2022-5-6 16:05 编辑


C:\Users\FGC\Desktop

使用特权

评论回复
wubangmi| | 2022-5-6 16:17 | 显示全部楼层
714386274d811b745e.png
用户手册上有公式,你懵逼那就证明你没好好看,也没静下心来要把他搞明白,把这两个公式整合起来一起看就明白了。
说个明白的话就是。CAN波特率 = 外部晶振频率(比如8Mhz)/((SEG_1 + 2) + (SEG_2 + 1)) ;
SEG_1和 SEG_2和分频系数(PRESC)是你需要设置的。
至于采样点要怎么分配,配成多少合适,那就是另外一个话题了。

使用特权

评论回复
两只袜子| | 2022-5-6 16:20 | 显示全部楼层
哈哈,经典啊,你懵逼就证明你没好好看。多看数据手册总是好的

使用特权

评论回复
sagade| | 2022-5-6 16:28 | 显示全部楼层
//<<Can bit time config
    stcCanInitCfg.stcCanBt.PRESC = 1u-1u;
    stcCanInitCfg.stcCanBt.SEG_1 = 5u-2u;
    stcCanInitCfg.stcCanBt.SEG_2 = 3u-1u;
    stcCanInitCfg.stcCanBt.SJW   = 3u-1u;
        /*
        Fcanclk = XTAL_VALUE = 8M
        TQ = (PRESC+1) / Fcanclk = 1 / 8M
        BT = tseg1 + tseg2 = ((SEG_1+2) + (SEG_2+1)) * TQ = (5+3) * (1/8Mhz) = 1/1M
        */
1位要1/1M秒,换算成波特率就是1M了。

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-6 16:28 | 显示全部楼层
wubangmi 发表于 2022-5-6 16:17
用户手册上有公式,你懵逼那就证明你没好好看,也没静下心来要把他搞明白,把这两个公式整合起来一起看就 ...

确实是自己没有认真看数据手册,受教了,非常感谢您

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-6 17:12 | 显示全部楼层
sagade 发表于 2022-5-6 16:28
1位要1/1M秒,换算成波特率就是1M了。

懂了,多谢

使用特权

评论回复
请叫我污春|  楼主 | 2022-5-6 17:13 | 显示全部楼层
两只袜子 发表于 2022-5-6 16:20
哈哈,经典啊,你懵逼就证明你没好好看。多看数据手册总是好的

是的

使用特权

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

本版积分规则