реклама на сайте
подробности

 
 
> USB_LP_CAN1_RX0_IRQ USB+FreeRTOS
dimon_rub
сообщение Aug 10 2017, 03:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-09-16
Пользователь №: 93 282



Здравствуйте. Подскажите пожалуйста в чем дело. ПРИ НЕ ПОДКЛЮЧЕНОМ УСТРОЙСТВЕ к PC построеном на STM32F103RC постоянно срабатывает прерывание USB_LP_CAN1_RX0_IRQn. На ногах все чисто (асцилограф). Частота очень высокая занимает почти все процессорсое время. Если использовать очередь (семафор) то обработчик неуспевает вызываться. Все это видно дебагером. Флаги ISTR_ERR и ISTR_ESOF. Если нужен код скажите
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimon_rub
сообщение Aug 10 2017, 22:10
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 10-09-16
Пользователь №: 93 282



Уважаемый Forger Ваша ирония мне конечно подуше (немного разрядки - 2 сутки с USB) но тут Вы абсолютно НЕПРАВЫ. Обработчик присутствует и если вы работали с данной переферией то он стандартный если брать STM32_USB-FS-Device (проверят все возможные флаги относительно данной переферии).

ЧТО ЗАМЕЧЕНО:
Прерывания срабатывают после рестарта проца (USB не подключено к PC) и после нескольких дрыгов, завтра посчитаю, затихают. При этом флаги выставляются ERR, ESOF, SUSP. Далее вроде тишина пока не подключешь USB. Просмотрено дебагером.

Странно что при старте флаги маскируются ( PowerOn() )
wInterrupt_Mask = CNTR_RESETM | CNTR_SUSPM | CNTR_WKUPM;
_SetCNTR(wInterrupt_Mask);

а далее вызывается функция USB_SIL_Init(); в которой все это дело открывается:
wInterrupt_Mask = IMR_MSK;
_SetCNTR(wInterrupt_Mask);

Причем вызовы идут подряд.

ЧТО ЭТО И КАК РЕШИТЬ

Сообщение отредактировал dimon_rub - Aug 10 2017, 22:18
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 25th July 2025 - 10:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01354 секунд с 7
ELECTRONIX ©2004-2016