控制器局域网与通用串行总线通信技术解析
1. 控制器局域网(CAN)
1.1 CAN 中断优先级建议
建议降低 CAN 中断优先级,因为 HAL 函数使用 SysTick 中断为内部操作和 HAL_Delay 函数创建精确的 1 毫秒节拍。SysTick 中断在外设单元中具有最高优先级,因此为 CAN 中断分配较低优先级不会影响它,否则可能会降低 HAL_Delay 函数的精度。
1.2 CAN 模块设置
1.2.1 通过 C++ 语言设置
可以利用 Mbed 及其可用函数来调整 CAN 模块属性。首先要调整 Tx 和 Rx 引脚,可通过 CAN 类实现,需向该类提供 Tx 和 Rx 引脚名称。初始化后可配置频率参数,并且在发生中断时可以调用回调函数。
1.2.2 通过 MicroPython 设置
MicroPython 有 CAN 类来处理 CAN 操作。使用 pyb.CAN(bus) 函数创建 CAN 模块,其中 bus 表示 CAN 模块编号,MicroPython 固件中定义了 CAN1 和 CAN2 模块,CAN1 的 Rx 和 Tx 引脚分别为 PB8 和 PB9,CAN2 的 Rx 和 Tx 引脚分别为 PB12 和 PB13。创建 CAN 模块后,可使用 init(mode, prescaler, sjw, bs1, bs2, auto_restart, baudrate) 函数进行初始化:
- mode :用于设置 CAN 模式,可选值有
超级会员免费看
订阅专栏 解锁全文
50

被折叠的 条评论
为什么被折叠?



