Top.Mail.Ru
Уведомления
Очистить все

[Решено] Отваливается отладчик ST-LINK после настройки порта GPIO.

Виталий-stm32
(@vitalij-stm32)
Level 0

Начал знакомиться с микроконтроллерами STM32, пытаюсь простейший проект создать с управлением GPIO, но уже столкнулся с проблемами. После выполнения инструкции:

GPIOA->MODER = 0x3;

отваливается ST-LINK с ошибкой что не может подключиться к устройству. Проверял по шагам в отладчике, именно на этой строке всегда ломается. В чем тут может быть дело?

Цитата
Topic starter Размещено : 11.10.2022 13:05
Aveal
(@aveal)
Top level Admin

Привет, ST-Link подключается к PA13 и PA14, а ты этой командой перенастраиваешь в том числе и их. По умолчанию для GPIOA для работы SWD:

GPIOA->MODER = 0xA8000000;

Поэтому в такой форме надо делать так:

GPIOA->MODER = 0xA8000003;

А в целом лучше, конечно, использовать битовые маски.

ОтветитьЦитата
Размещено : 11.10.2022 14:46
Виталий-stm32
(@vitalij-stm32)
Level 0

@aveal 

Спасибо, проблема решилась после изменения на:

GPIOA->MODER = 0xA8000003;

Начинаю разбираться с масками.

ОтветитьЦитата
Topic starter Размещено : 11.10.2022 18:41
Эдуард
(@eduard)
Level 3 Moderator

@vitalij-stm32 Лучше так

GPIOA->MODER |= 0x03;

Тогда остальные биты этой операцией не затронутся.

ОтветитьЦитата
Размещено : 11.10.2022 21:14
Виталий-stm32
(@vitalij-stm32)
Level 0

@eduard спасибо! вроде бы уловил идею)

ОтветитьЦитата
Topic starter Размещено : 13.10.2022 18:19
Эдуард
(@eduard)
Level 3 Moderator

@vitalij-stm32 https://microtechnics.ru/profilegrid_blogs/chast-5-stm32-i-c-iniczializacziya-gpio/#more-16749

Здесь описано как инициализировать порты. Если классы не нужны, всё равно можно понять как это работает. Там все регистры GPIO описаны.

ОтветитьЦитата
Размещено : 13.10.2022 19:50
Поделиться: