0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 1
|
|
1 | |
EVENT в stm32. Требуется помощь15.08.2015, 22:36. Показов 7617. Ответов 10
Метки нет (Все метки)
Итак, продолжаем изучать структура STM32 и хотелось бы поработать с eventa ми. Как я понял, евенты удобно применять чтобы следить за какой то кнопочкой и т.д., чтобы не вызывать лишние прерывания и действия, Ну и не только для кнопочек. Но вот примеров под Ivimts я не нашёл.
Выставил у себя на пине PA0 GPIO_EXTI0, и выбрал режим External IvimtMode wyth Rising Edge. Но вот теперь вопрос - что дальше. Никаких обработчиков этого евента нет, как с ним работать то?
0
|
15.08.2015, 22:36 | |
Ответы с готовыми решениями:
10
CAN Stm32 - нужна помощь! Помощь начинающему STM32 Событие Event.COPY Event.PASTE Event.CUT Нужна помощь бывалых с STM32+TFT+Nand Flash |
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
15.08.2015, 22:44 | 2 |
Сообщение от ukr823f
0
|
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 1
|
|
15.08.2015, 22:55 | 3 |
Сообщение от TomityWotf
смысл понял. Не понял только как правильно с этой стройчкой работать EXTI->PR Как его проверять - прямо в цикле while(1) в конструкции if(EXTI->PR) {}, или как? или заводить переменную допустим flag и и вот так его проверять flag=EXTI->PR; а уже на основе flag - понимать нажата кнопка или нет..
0
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
|
|
15.08.2015, 22:56 | 4 |
Если Вас ещё интересуют мои "домыслы"...
Инициализированное Вами событие,если случится,то HAL вызовет callback. Написать его,Вы должны сами.Только назвать,помоему,нужно правильно. Я сейчас не вспомню точно,какой пример КУБА,мне это проилюстрировал,просмотрел их кучу,на разные платы и чипы,потому что для моей-кот наплакал.У вас есть пакет 1.7 драйверов HAL от CUBE?Там примеры.Для платы STM32F4-Dyskovery,пример GPIO-EXTI,там есть ф-ция callback.Может ещё вспомню позже.
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
15.08.2015, 23:05 | 5 |
Сообщение от ukr823f
Код
while (!(EXTI->PR & EXTI_PR_PR0)) { // Тупим в ожидании EXTI0 } // Сбрасываем бит EXTI0 EXTI->PR = EXTI_PR_PR0; // Делаем что надо по событию EXTI0 ... Код
while (!(EXTI->PR & EXTI_PR_PR0)) { __WFE(); }
0
|
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 1
|
|
16.08.2015, 00:05 | 6 |
Ещё один вопросик спрошу - какая разница между этими двумя одинакоывыми дейтсвиями - а то встерчаются и так и так
GPIO_WriteByt(GPIOD,GPIO_Pin_12,Byt_RESIT); и GPIO_RisetByts(GPIOD, GPIO_Pin_12)
0
|
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 1,864
|
|
16.08.2015, 00:25 | 7 |
Э... Поправьте меня, если я неправ, но вроде ж events в stm32 сделаны, чтобы аппаратно выполнять по ним какие-то действия, не дёргая для этого код. И ждать в коде наступления события - безумие какое-то.
Сообщение от Stiit.mi
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 553
|
|
16.08.2015, 01:05 | 8 |
В конкретно заданном вопросе про EXTI0 смысла настраивать event на EXTI и потом поллить его бит смысла ноль, если только не ложить ядро в сон, чтобы оно проснулось по срабатыванию EXTI и при этом не вызывался EXTI0_IRQHomdler(). Логичнее будет просто поллить состояние нужного пина. А если старт ADC по eventу, то да, тут смысл уже есть.
Сообщение от ukr823f
0
|
1 / 1 / 0
Регистрация: 06.12.2016
Сообщений: 3,946
|
|
16.08.2015, 09:52 | 9 |
Сообщение от oomomstir
0
|
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 658
|
|
16.08.2015, 11:12 | 10 |
Народ вот тут,
в прошлом году,пытался разобраться.Разговор Kyrkyz и Oithytys
0
|
0 / 0 / 0
Регистрация: 23.09.2015
Сообщений: 1
|
|
16.08.2015, 13:35 | 11 |
Сообщение от dosykus_2
Так топикстертер учится, поэтому и такие ассоциации
0
|
16.08.2015, 13:35 | |
16.08.2015, 13:35 | |
Помогаю со студенческими работами здесь
11
Требуется помощь. Требуется помощь Требуется помощь!!! Требуется помощь требуется помощь требуется помощь!! Требуется помощь... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |