Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Общее прерывание для двух модулей?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Jenya7
Прерывание USB_LP_CAN1_RX0_IRQHandler общее для CAN и USB? Или я что то не понимаю?
Если да общее то какой идиот это придумал?

а в startup есть такая строка
DCD USB_LP_IRQHandler ; USB Low Priority remap
это значит можно пользовать или какие то движения нужны для ремапа?
ataradov
QUOTE
It is possible to remap the USB interrupts (USB_HP, USB_LP and USB_WKUP) on interrupt lines 74, 75 and 76
respectively by setting the USB_IT_RMP bit in the Section 12.1.1: SYSCFG configuration register 1 (SYSCFG_CFGR1) on
page 245.


Зачем оно так сделано по-умолчанию - хрен знает.
Jenya7
Цитата(ataradov @ Feb 26 2018, 13:09) *
Зачем оно так сделано по-умолчанию - хрен знает.

хреново. конкретно в STM32F303VC USB сидит на PA11, PA12 и нет ремапа. а даже еслиб был я не могу поменять пины.

что то я не понимаю
Цитата
Bit 5 USB_IT_RMP: USB interrupt remap (STM32F303xB/C/D/E devices only)
This bit is set and cleared by software. It controls the USB interrupts mapping.
0: USB_HP, USB_LP and USB_WAKEUP interrupts are mapped on interrupt lines 19, 20
and 42 respectively.
1: USB_HP, USB_LP and USB_WAKEUP interrupts are mapped on interrupt lines 74, 75
and 76 respectively

в даташит
74-VSS
75-VDD

а. по моему понял. это не пины. это индексы в interrupt table. то есть я могу переремапить интерапты и спать спокойно?

так можно сделать?
Код
void USB_Interrupts_Config(void)
{      
    NVIC_InitTypeDef NVIC_InitStructure;
    
     //remap interrupt
    SYSCFG->CFGR1 |= SYSCFG_CFGR1_USB_IT_RMP;

    /* 2 bit for pre-emption priority, 2 bits for subpriority */
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

    /* Enable the USB interrupt */
    NVIC_InitStructure.NVIC_IRQChannel = USB_LP_IRQn;  //USB_LP_CAN1_RX0_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
  
    /* Enable the USB Wake-up interrupt */
    NVIC_InitStructure.NVIC_IRQChannel = USBWakeUp_RMP_IRQn;  //USBWakeUp_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
    NVIC_Init(&NVIC_InitStructure);  
}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.