jenya7 0 26 февраля, 2018 Опубликовано 26 февраля, 2018 (изменено) · Жалоба Прерывание USB_LP_CAN1_RX0_IRQHandler общее для CAN и USB? Или я что то не понимаю? Если да общее то какой идиот это придумал? а в startup есть такая строка DCD USB_LP_IRQHandler ; USB Low Priority remap это значит можно пользовать или какие то движения нужны для ремапа? Изменено 15 ноября, 2022 пользователем haker_fox Уточнил название темы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ataradov 0 26 февраля, 2018 Опубликовано 26 февраля, 2018 (изменено) · Жалоба 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. Зачем оно так сделано по-умолчанию - хрен знает. Изменено 26 февраля, 2018 пользователем ataradov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 февраля, 2018 Опубликовано 26 февраля, 2018 (изменено) · Жалоба Зачем оно так сделано по-умолчанию - хрен знает. хреново. конкретно в 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); } Изменено 26 февраля, 2018 пользователем Jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться