Перейти к содержанию
    

STM32G030J6M6 не работает EXTI

Приветствую! Для своих личных нужд часто вешал кнопку вкл/выкл на EXTI. Работало на F103, F072, F030. На восьминогом G030 никак не могу запустить эти полторы строчки. По этому прошу помощи у компетентных людей. 

main.c

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/21/2024 at 10:48 PM, getshket said:

По этому прошу помощи у компетентных людей. 

На восьминогом G030

ножка РА12 она же и РА10

ножка PC14 она же и PB7 и PB8 и PB9

 

Вы это учли в своей программе ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как-то пытался повесить прерывание на ногу B7 по низкому уровню и не работало. Тогда использовал порт А, так как ошибок в конфигурации  явных не было. Другие пины порта B не проверял, корпус был 20-пиновый, так тоже этого порта немного. Еще не разбирался, как правильно использовать вывод, на который назначено несколько gpio, нужно будет заглянуть в раздел gpio референса в следующий раз.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал с 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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

GPIOB->PUPDR |= (1 << 14); // 7 pull-up

если изначально в GPIOB->PUDR были не нули, то можно получить не 0x01, а 0х11

у меня еще такая настройка есть (для PB5)

EXTI->IMR1 = EXTI->IMR1 | EXTI_IMR1_IM5;

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Они там изначально, да и отладчиком заглядывал, прежде чем окончательно загрустить. На J и F, да, можно проверить состояние соседей висящих на том же пине, а на 48-пиновом порт В не пересекается с другими. И IMR1 - это навряд ли, он же для вывода проца из энергосбережения по прерыванию. PB5 при следущем подходе попробую, может у меня только седьмой не хочет работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я просто забил на exti и использовал эту библиотеку Библиотека Button для обработки нажатий кнопок на STM32. KY-004. (microtechnics.ru)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В 25.02.2024 в 19:54, ozforester сказал:

И IMR1 - это навряд ли, он же для вывода проца из энергосбережения по прерыванию.

Если посмотреть на картинку блока EXTI (смотрю в документации на первый попавшийся F4xx, помню, что у остальных было так же и сомневаюсь, что у G0xx будет иначе) - то там прекрасно видно, что IMR запрещает выставление флага в IPR и вызов прерывания. А вот выход из энергосбережения идет напрямую. То есть в зависимости от IMR вы можете либо попасть в прерывание EXTI при просыпании либо программа просто пойдет работать дальше, но без записи 1 в соответствующий бит EXTI вы ни прерывания ни флага не получите.

image.png.a592f8f5b1d1be740dab6654ee95d9bc.png

Добавлено: не поленился, открыл руководство на G0x0 - картинка сложнее, но идея та же.
image.thumb.png.777933db58a642f03321d3ed3a83969b.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за подсказки. Пропустил, так как там название cpu wake-up. Думал, что это только выход из энергосбережения, а флагу не мешает. Теперь буду тщательнее смотреть функциональные сехмы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...