最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

关于STM32中CAN1_RX0_IRQn和CAN1_RX1_IRQn的使用

IT圈 admin 33浏览 0评论

2024年3月13日发(作者:兴秀艳)

关于 STM32 中 CAN1_RX0_IRQn 和 CAN1_RX1_IRQn

的使用

如果你用的 CAN 引脚是 PA11 和 PA12,接收中断用

CAN1_RX0_IRQn。如果 CAN 引脚用的是 PB8 和 PB9,也就是用重定义的引

脚,接收中断用 CAN1_RX1_IRQn。由于 PA11 和 PA12 也是 USB 的引脚,所

以非互联型且带 CAN 控制器的微控制器的库文件在起名字时用了

USB_LP_CAN1_RX0_IRQn。 以上内容参考于网络,后经证实,以上说法是不

正确的,理由如下:

STM32 有 2 个 3 级深度的接收缓冲区:FIFO0 和 FIFO1,每个 FIFO 都可以

存放 3 个完整的报文,它们完全由硬件来管理。如果是来自 FIFO0 的接收中断,

则用 CAN1_RX0_IRQn 中断来处理。如果是来自 FIFO1 的接收中断,则用

CAN1_RX1_IRQn 中断来处理。在 CAN 的初始化配置过程中,用

CAN_FilterFIFOAssignment 来选择要使用 FIFO。

示例如下:

1. 配置过滤器 CAN__FilterNumber = 0;

CAN__FilterMode = CAN_FilterMode_IdMask;

CAN__FilterScale = CAN_FilterScale_32bit;

CAN__FilterIdHigh = 0x0000;

CAN__FilterIdLow = 0x0000;

CAN__FilterMaskIdHigh

0x0000;CAN__FilterMaskIdLow = 0x0000;

CAN__FilterFIFOAssignment = 0; //关联 FIFO0

CAN__FilterActivation = ENABLE;

=

2024年3月13日发(作者:兴秀艳)

关于 STM32 中 CAN1_RX0_IRQn 和 CAN1_RX1_IRQn

的使用

如果你用的 CAN 引脚是 PA11 和 PA12,接收中断用

CAN1_RX0_IRQn。如果 CAN 引脚用的是 PB8 和 PB9,也就是用重定义的引

脚,接收中断用 CAN1_RX1_IRQn。由于 PA11 和 PA12 也是 USB 的引脚,所

以非互联型且带 CAN 控制器的微控制器的库文件在起名字时用了

USB_LP_CAN1_RX0_IRQn。 以上内容参考于网络,后经证实,以上说法是不

正确的,理由如下:

STM32 有 2 个 3 级深度的接收缓冲区:FIFO0 和 FIFO1,每个 FIFO 都可以

存放 3 个完整的报文,它们完全由硬件来管理。如果是来自 FIFO0 的接收中断,

则用 CAN1_RX0_IRQn 中断来处理。如果是来自 FIFO1 的接收中断,则用

CAN1_RX1_IRQn 中断来处理。在 CAN 的初始化配置过程中,用

CAN_FilterFIFOAssignment 来选择要使用 FIFO。

示例如下:

1. 配置过滤器 CAN__FilterNumber = 0;

CAN__FilterMode = CAN_FilterMode_IdMask;

CAN__FilterScale = CAN_FilterScale_32bit;

CAN__FilterIdHigh = 0x0000;

CAN__FilterIdLow = 0x0000;

CAN__FilterMaskIdHigh

0x0000;CAN__FilterMaskIdLow = 0x0000;

CAN__FilterFIFOAssignment = 0; //关联 FIFO0

CAN__FilterActivation = ENABLE;

=

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论