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 中描述如下
USB 的中断 IRQHandler 变更如下:
类型:MCU 应用
适用型号:AT32F403,AT32F403A,AT32F407, AT32F413
主功能:USB, CAN
次功能:无