跳到主要内容

CAN 与 CAN FD

LibXR 支持标准 CAN 和 CAN FD。在 STM32CubeMX 中需要启用相应的外设和中断,并至少为标准帧和扩展帧分配一个过滤器。

默认过滤器与FIFO配置

LibXR会为每个CAN/CANFD的标准帧和扩展帧各配置一个默认过滤器,允许所有数据帧通过。

对于不同CAN/CANFD数量的平台,FIFO的配置如下:

经典CANCAN1CAN1+CAN2CAN1+CAN2+CAN3
FIFO0CAN1CAN1CAN1+CAN2
FIFO1N/ACAN2CAN3
CAN FDCANFD1CANFD1+CANFD2CANFD1+CANFD2+CANFD3
FIFO0CANFD1CANFD1CANFD1
FIFO1N/ACANFD2CANFD2+CANFD3

示例

第二个参数表示发送队列大小,用于缓冲待发送的数据帧。

STM32CAN can1(&hcan1, 5);
STM32CANFD fdcan1(&hfdcan1, 5);

配置文件

代码生成后,会在 User/libxr_config.yaml 中添加如下配置:

CAN:
CAN1:
queue_size: 5

FDCAN:
FDCAN1:
queue_size: 5
  • queue_size:发送队列的大小,用于缓存待发送的 CAN/FDCAN 数据帧。

可直接修改该配置文件。如需应用更改,请执行以下命令重新生成代码:
xr_cubemx_cfg -d .

xr_gen_code_stm32 -i ./.config.yaml -o ./User/app_main.cpp