[应用相关] FAQ0088 USB 和两路 CAN 同时使用, USB 中断向量号 Remap 说明

[复制链接]
 楼主| 骑着蜗牛狂奔O 发表于 2021-5-17 21:09 | 显示全部楼层 |阅读模式
本帖最后由 骑着蜗牛狂奔O 于 2022-5-20 19:34 编辑

Questions:USB 和两路 CAN 同时使用, USB 要修改中断向量号吗?
Answer:
在部分型号的 AT32 中,因为默认配置下 USB 跟 CAN1 共用一个中断向量号,同一时间只能供一个外设使用。当两个外设要同时使用时,USB 需要重新申请中断号。代码如下:
crm_usb_interrupt_remapping_set(CRM_USB_INT73_INT74);

以 AT32F403A 为例,at32f403a_407_crm.c 中该函数定义如下:
/* usbdev interrupt remapping control */
void crm_usb_interrupt_remapping_set(crm_usb_int_map_type int_remap)
{
CRM->intmap_bit.usbintmap = int_remap;
}

该函数实际设置了 USBINTMAP 位,该 bit 在 RM 中描述如下
192751k59mn79v1ui0mvz9.png

USB 的中断 IRQHandler 变更如下:
192751q97895z8mu8ov9m7.png

类型:MCU 应用
适用型号:AT32F403,AT32F403A,AT32F407, AT32F413
主功能:USB, CAN
次功能:无

FAQ0088_USB和两路CAN同时使用, USB中断向量号Remap说明_V2.0.0.pdf

138.62 KB, 下载次数: 23

单片小菜 发表于 2021-5-18 09:28 | 显示全部楼层
楼主的问题解决了吗?亟需知道。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

140

帖子

4

粉丝
快速回复 返回顶部 返回列表