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

 
 
> CAN на STM32F2xx. Где прерывание?
pitt
сообщение Apr 3 2013, 02:04
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Разбираюсь с CAN на STM32F2xx. Научился поылать фреймы. Т.е. с большой долей уверенности могу утверждать, что инициализация модуля работает. Теперь то же самое, но с прерываниями. Разрешаю прерывание TMEIE в CAN_IER. выполняю
NVIC_EnableIRQ (CAN1_TX_IRQn); Посылаю фрейм, жду прерывания, а его нет! Биты TXOK0 и RQCP0 в CAN_TSR взведены. Смотрю в NVIC - прерывание там enable и pending, а в обработчик не заходит. Что не так?
Спасибо.

Сообщение отредактировал pitt - Apr 3 2013, 02:05


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Apr 5 2013, 15:21
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



CAN1_TX_IRQn
это не единственное прерывание кана, это только от 1 буфера, есть еще и 0 (в проце 2 буфера). Надо обрабатывать оба прерывания!
Когда заполняется первый буфер данные приходят во второй. В какой они придут первыми хрен знает, недавно кто-то говорил что при дебуге у него данные сыпались в 1 буфер, а при работе в 0.

Go to the top of the page
 
+Quote Post
pitt
сообщение Apr 5 2013, 21:52
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(Golikov A. @ Apr 5 2013, 11:21) *
CAN1_TX_IRQn
это не единственное прерывание кана, это только от 1 буфера, есть еще и 0 (в проце 2 буфера). Надо обрабатывать оба прерывания!
Когда заполняется первый буфер данные приходят во второй. В какой они придут первыми хрен знает, недавно кто-то говорил что при дебуге у него данные сыпались в 1 буфер, а при работе в 0.

прерывание по передаче единственное. По приему, действительно, пара и так на каждый из двух ВОЗМОЖНЫХ модулей. Возможных, не значит обязательно использовать оба.
При приеме, тоже все не так сложно: фрейм прошедший через фильтр попадает в буфер(FIFO), назначенное этому фильтру. Если фрейм может пройти через 2 фильтра, настроенные на разные буфера, то он будет проходить через фильтр с меньшим порядковым номером и, соответственно, в ему, фильтру, приписанный буфер.
Моя проблема, как я описал выше, была в настройках IDE Keil - и хрен с ней, пока разбираться не приспичило.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 09:31
Рейтинг@Mail.ru


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