Перейти к содержанию
    

Общее прерывание для двух модулей в STM32F303VC?

Прерывание USB_LP_CAN1_RX0_IRQHandler общее для CAN и USB? Или я что то не понимаю?

Если да общее то какой идиот это придумал?

 

а в startup есть такая строка

DCD USB_LP_IRQHandler ; USB Low Priority remap

это значит можно пользовать или какие то движения нужны для ремапа?

Изменено пользователем haker_fox
Уточнил название темы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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.

 

Зачем оно так сделано по-умолчанию - хрен знает.

Изменено пользователем ataradov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Зачем оно так сделано по-умолчанию - хрен знает.

хреново. конкретно в 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);   
}

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...