STM32 HAL库 CAN通讯相关设定

本文详细描述了CAN总线的配置步骤,包括时钟配置、波特率设置、补偿机制、功能选择(如时间戳、自动离线管理等)、模式选择以及中断配置。作者还提供了CAN1和CAN2初始化代码片段,展示了如何设置过滤器和启动CAN模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天去面试,突然问我CAN的相关功能,但是做过一次早就忘记了,正好用HAL库重新做一遍,留下个记忆。

正常配置引脚,配置功能。

第一栏是配置时钟的,通过配置能设置波特率(主要功能,里面具体的TQ方面请自行查找),因为我的总线是42MHz的,直接分频42,这样TQ就是整数,方便设置波特率。因为低速和高速CAN的速率区分线就是125K,这样设置成125K可以同时应用在两种不同总线情况下(可以后续改)。最后一个是补偿机制的,相当于一个可设定频率的可调带宽滤波器,可以类比成系口袋的绳,越大容错越高,但是风险也越大(意外的杂波)。

第二栏是CAN总线的一些功能。第一个是时间戳,使能就能用时间戳;第二个是自动离线管理,当发送或接收错误超过一定值就离线了;第三个是自动唤醒,低功耗用的;第四个是报文自动重传,当发送失败了就一直发送到成功;第五个是FIFO锁,使能后满了就不收后边的报文,关闭就会覆盖原来的报文;第六个是报文发送优先级的功能,这个是配置邮箱中多个未发送报文的以ID的优先级发送还是以存进来的顺序发送。这栏功能根据自己的需求选,个人认为时间戳、自动离线、自动重传这三个作用比较大,我选择这三个启用。

第三栏是模式选择,CAN总线有正常模式、环回模式、静默模式和环回静默模式。正常模式不说了,环回是TX可以发到自己的RX上ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值