Size: a a a

2021 May 26

s

stD in STM32
Получается что так.
источник

АС

Алексей Сугоняев... in STM32
Вам надо в прерывании определить какая линия вызвала обработчик
источник

АС

Алексей Сугоняев... in STM32
Вопрос как это сделать? :)
источник

АС

Алексей Сугоняев... in STM32
Я бы предложил читать значение пинов в обработчике
источник

АС

Алексей Сугоняев... in STM32
и высылать нужную константу в CallBack
источник

s

stD in STM32
Вы имеете в виду в обработчике прочитать регистр IDR ?
источник

АС

Алексей Сугоняев... in STM32
Да
источник

s

stD in STM32
Но это костыль получается.
источник

АС

Алексей Сугоняев... in STM32
Разыскивал нет ли статуса линии вызвавшей прерывание в настройках EXTI, но не нашел
источник

s

stD in STM32
Не решение проблемы, а её обход.
источник

АС

Алексей Сугоняев... in STM32
Ну не совсем костыль, пройдут жалкие наносекунды пока Вы определяете источник, боитесь что затянете прерывание. Да только вызов CallBack затягивает его еще приличней.
источник

s

stD in STM32
Я через пару часов буду тыкать осцилографом - расскажу что происходит.
источник

s

stD in STM32
Я не боюсь занимать прерывание, сколько мне нужно столько и будет занято. Дело в другом, оно же само должно работать. Иначе это глупость какая-то.
источник

АС

Алексей Сугоняев... in STM32
Скажем небезизвестный мотор 680x0 имел всего одно прерывание на все случаи жизни, все остальное читалось из регистра статуса
источник

s

stD in STM32
Это к делу не относится. Ща привезут устройство и буду всё проверять. Сначала железо, а потом в дебаге смотреть какие регистры/биты устанавливаются
источник

m

mirmik in STM32
Насколько я понимаю, такое делают, когда контроллер некоторого ранее созданного типа упаковывают в более мелкий корпус.
источник

АС

Алексей Сугоняев... in STM32
Решение проблемы перенос кнопок на другие ноги имеющие отдельный мультиплексор на прерывание. Но такое вероятно не подходит? Ж)
источник

s

stD in STM32
Нет, плата уже сделана.
источник

PK

Pirojenka Kremowaya in STM32
Доброе утро, не могу понять, в чем проблема: вызываю функцию  HAL_ADC_Start_DMA( ) в systick, там же записываю значения в нужную переменную(читаю 1 канал)
Но данных нет - посмотрел в отладке, АЦП лочится и выходит из халовской функции, почему так - не знаю
Решил вызывать в систике и там же считывать значения по заветам препо́да🗿
источник

Б

Бармалей in STM32
Посмотрите регистры EXTI_IMR и SYSCFG_EXTICRx на предмет правильной инициализации. IMR маскируеи/демаскирует конкретные линии прерываний. Похоже что там засада
источник