Size: a a a

2020 December 13

С

Саша in Embedded Group
Да,спасибо
источник

S

Sanders in Embedded Group
Stas Koynov
Электроника шаг за шагом
Рудольф Сворень (2020)

Первое издание практической энциклопедии радиолюбителя "Электроника шаг за шагом" Р. А. Свореня было выпущено в 1979 году и сразу завоевало широкую популярность. В него вошли популярные рассказы об основах электротехники, электроники и радиотехники, о звукозаписи, телевидении, радиосвязи, электронной музыке, об автоматике и вычислительной технике. Настоящая книга подготовлена на базе второго расширенного издания, вышедшего в 1986 году. Основная (учебная) часть оставлена почти без изменений; для привязки к современным реалиям и терминологии книга дополнена комментариями, а также "Практикумом" на основе современных компонентов. Для широкого круга любителей электроники. Все оригинальные рисунки решено было оставить "как есть" (включая текстовые подписи) - они были отсканированы и вычищены, но сохранены в растровом виде, сохраняя преемственность с прижизненным изданием автора.

Скачать книгу
источник

TB

Taras Bezditnyi in Embedded Group
Ребята, как можно отдебажить, почему может один UART нормально передавать, а второй с таким же выставленным global interrupt, и тем же приоритетом и так далее, не работает… точнее отрабатавает только первый раз, а второй раз такое чувство что больше не вызывается… Но ведь HAL_UART_Receive_IT должен перевызывать Interrupt постоянно… Не знаю в какую сторону копать можно…
источник

TB

Taras Bezditnyi in Embedded Group
самое тупое, что и HAL_ADC_ConvCpltCallback так же само не вызывается больше одного раза...
источник

LZ

Leonid Zaliubovskii in Embedded Group
Taras Bezditnyi
Ребята, как можно отдебажить, почему может один UART нормально передавать, а второй с таким же выставленным global interrupt, и тем же приоритетом и так далее, не работает… точнее отрабатавает только первый раз, а второй раз такое чувство что больше не вызывается… Но ведь HAL_UART_Receive_IT должен перевызывать Interrupt постоянно… Не знаю в какую сторону копать можно…
выключить один юарт и посмотреть - заработало ли? Если программируешь через Keil - можно статусные регистры посмотреть. Но в любом случае, нужно сравнить начальную конфигурацию первого и втого юарта в регистрах.
источник

R

Roman Shepilov in Embedded Group
Taras Bezditnyi
Ребята, как можно отдебажить, почему может один UART нормально передавать, а второй с таким же выставленным global interrupt, и тем же приоритетом и так далее, не работает… точнее отрабатавает только первый раз, а второй раз такое чувство что больше не вызывается… Но ведь HAL_UART_Receive_IT должен перевызывать Interrupt постоянно… Не знаю в какую сторону копать можно…
В первую очередь: внутри халовских функций может сработать uart lock. Подробности сейчас не помню - посмотри внутри функций, все понятно станет
источник

LZ

Leonid Zaliubovskii in Embedded Group
может там маскируется прерывание от юарта за каким то хрнеом
источник

R

Roman Shepilov in Embedded Group
Функции хала перед работой с уартом лочат его. И не во всех случаях освобождают. В этом чаще всего проблема.
источник

LZ

Leonid Zaliubovskii in Embedded Group
хорошо бы колл стек посмотреть, при первом вызове, может действительно где то лок и случился
источник

PB

Petr Belyaev in Embedded Group
Taras Bezditnyi
Ребята, как можно отдебажить, почему может один UART нормально передавать, а второй с таким же выставленным global interrupt, и тем же приоритетом и так далее, не работает… точнее отрабатавает только первый раз, а второй раз такое чувство что больше не вызывается… Но ведь HAL_UART_Receive_IT должен перевызывать Interrupt постоянно… Не знаю в какую сторону копать можно…
Не знаю, прав ли я, но я вызываю HAL_UART_Receive_IT в конце обработчика халовского callback’а (дополнительно)
источник

PB

Petr Belyaev in Embedded Group
Lock вроде ставится на instance?
источник

PB

Petr Belyaev in Embedded Group
Типа «получил, получай ещё»
источник

TB

Taras Bezditnyi in Embedded Group
ну я так же само его вызываю… хрен его душу знает… декомпозирую все нахрен снова и попробую пересобрать
источник

LZ

Leonid Zaliubovskii in Embedded Group
Petr Belyaev
Не знаю, прав ли я, но я вызываю HAL_UART_Receive_IT в конце обработчика халовского callback’а (дополнительно)
а что оно отвечает? HAL_BUSY если - то он залочен
источник

TB

Taras Bezditnyi in Embedded Group
а вот в том-то и дело, отвечает что HAL_OK и падает
источник

TB

Taras Bezditnyi in Embedded Group
всмысле больше не вызывается
источник

LZ

Leonid Zaliubovskii in Embedded Group
Taras Bezditnyi
а вот в том-то и дело, отвечает что HAL_OK и падает
тогда нужно смотреть кофиги уарт
источник

LZ

Leonid Zaliubovskii in Embedded Group
может бит разрешения прерываний где то сброшен
источник

LZ

Leonid Zaliubovskii in Embedded Group
нужно и код посмотреть, и регистры заголить)
источник

R

Roman Shepilov in Embedded Group
Taras Bezditnyi
а вот в том-то и дело, отвечает что HAL_OK и падает
ОС используется?
источник