getshket 0 21 февраля Опубликовано 21 февраля · Жалоба Приветствую! Для своих личных нужд часто вешал кнопку вкл/выкл на EXTI. Работало на F103, F072, F030. На восьминогом G030 никак не могу запустить эти полторы строчки. По этому прошу помощи у компетентных людей. main.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 63 22 февраля Опубликовано 22 февраля · Жалоба On 2/21/2024 at 10:48 PM, getshket said: По этому прошу помощи у компетентных людей. На восьминогом G030 ножка РА12 она же и РА10 ножка PC14 она же и PB7 и PB8 и PB9 Вы это учли в своей программе ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getshket 0 22 февраля Опубликовано 22 февраля · Жалоба @dimka76 так точно! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ozforester 0 22 февраля Опубликовано 22 февраля · Жалоба Как-то пытался повесить прерывание на ногу B7 по низкому уровню и не работало. Тогда использовал порт А, так как ошибок в конфигурации явных не было. Другие пины порта B не проверял, корпус был 20-пиновый, так тоже этого порта немного. Еще не разбирался, как правильно использовать вывод, на который назначено несколько gpio, нужно будет заглянуть в раздел gpio референса в следующий раз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ozforester 0 24 февраля Опубликовано 24 февраля · Жалоба Попробовал с C8, тоже не включается EXTI на PB7. Может просто неправильно настраиваю? RCC->IOPENR |= (1 << 1); // clocking B GPIOB->MODER &= ~(0b11 << 14); // 7 input GPIOB->PUPDR |= (1 << 14); // 7 pull-up EXTI->FTSR1 |= (1 << 7); // 7 trig fall EXTI->EXTICR[1] = (0x01 << 24); // 7 mask NVIC_EnableIRQ( EXTI4_15_IRQn ); // vect Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Andrey190 2 25 февраля Опубликовано 25 февраля · Жалоба GPIOB->PUPDR |= (1 << 14); // 7 pull-up если изначально в GPIOB->PUDR были не нули, то можно получить не 0x01, а 0х11 у меня еще такая настройка есть (для PB5) EXTI->IMR1 = EXTI->IMR1 | EXTI_IMR1_IM5; 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ozforester 0 25 февраля Опубликовано 25 февраля · Жалоба Они там изначально, да и отладчиком заглядывал, прежде чем окончательно загрустить. На J и F, да, можно проверить состояние соседей висящих на том же пине, а на 48-пиновом порт В не пересекается с другими. И IMR1 - это навряд ли, он же для вывода проца из энергосбережения по прерыванию. PB5 при следущем подходе попробую, может у меня только седьмой не хочет работать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
getshket 0 29 февраля Опубликовано 29 февраля · Жалоба Я просто забил на exti и использовал эту библиотеку Библиотека Button для обработки нажатий кнопок на STM32. KY-004. (microtechnics.ru) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ozforester 0 29 февраля Опубликовано 29 февраля · Жалоба Забить нельзя разобраться. (= Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 1 марта Опубликовано 1 марта · Жалоба В 25.02.2024 в 19:54, ozforester сказал: И IMR1 - это навряд ли, он же для вывода проца из энергосбережения по прерыванию. Если посмотреть на картинку блока EXTI (смотрю в документации на первый попавшийся F4xx, помню, что у остальных было так же и сомневаюсь, что у G0xx будет иначе) - то там прекрасно видно, что IMR запрещает выставление флага в IPR и вызов прерывания. А вот выход из энергосбережения идет напрямую. То есть в зависимости от IMR вы можете либо попасть в прерывание EXTI при просыпании либо программа просто пойдет работать дальше, но без записи 1 в соответствующий бит EXTI вы ни прерывания ни флага не получите. Добавлено: не поленился, открыл руководство на G0x0 - картинка сложнее, но идея та же. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ozforester 0 1 марта Опубликовано 1 марта · Жалоба Спасибо за подсказки. Пропустил, так как там название cpu wake-up. Думал, что это только выход из энергосбережения, а флагу не мешает. Теперь буду тщательнее смотреть функциональные сехмы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться