Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как освободить PB3 и PB4 на STM32F4?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
hd44780
Собственно вопрос в теме.

При сбросе они примаплены к JTAG.
Пытался делать, как в ST-шном примере:

/* Configure PB.03 (JTDO) and PB.04 (JTRST) as output push-pull */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_Init(GPIOB, &GPIO_InitStructure);

ни фига не вышло.
Для F10x есть функция GPIO_PinRemapConfig, которая это делает. Для F4 такого не нашёл.

Мне надо дрыгать этими ногами. Ну PB3 на моей дискавери заведен на программатор, а как освободить PB4?

Спасибо.
VDLab
Не знаю как на вашем птичьем а напрямую для PB.4 вроде так:
Код
GPIOB->MODER   |= 0x100;
GPIOB->OTYPER  &= 0xFFEF;

Ну, там еще со скоростью (GPIOB_OSPEEDR) надо определиться, а то вы не указали как быстро ими махать надо
Genadi Zawidowski
Цитата(VDLab @ Nov 20 2013, 01:42) *
Не знаю как на вашем птичьем а напрямую для PB.4 вроде так:
Код
GPIOB->MODER   |= 0x100;
GPIOB->OTYPER  &= 0xFFEF;

Ну, там еще со скоростью (GPIOB_OSPEEDR) надо определиться, а то вы не указали как быстро ими махать надо

Старое содержимое регистров может помешать, как Вы думаете?

Код
GPIOB->MODER = (GPIOB->MODER & ~ GPIO_MODER_MODER4) | (GPIO_MODER_MODER4_0 * 1);



hd44780, чего же в исходники моего проекта не заглядываете? Там уже и под STM32F4 есть поддержка.
ViKo
Посмотрите сюда (это, правда, от 103-го):
Код
  AFIO->MAPR |= 0x02000000;    // JTAG-DP Disabled and SW-DP Enabled
  // AFIO->MAPR |= 0x01000000;    // Full SWJ (JTAG-DP + SW-DP) but without NJTRST
Genadi Zawidowski
Цитата
Посмотрите сюда (это, правда, от 103-го):

во-первых, на F4 не поможет, во-вторых, в коде ошибка. Биты регистра MAPR, отвечающие за режим JTAG/SWD, не читаются из этого регистра.
ViKo
Цитата(Genadi Zawidowski @ Nov 20 2013, 13:37) *
во-первых, на F4 не поможет, во-вторых, в коде ошибка. Биты регистра MAPR, отвечающие за режим JTAG/SWD, не читаются из этого регистра.

с первым - согласен
второе - биты пусть не читаются, главное, чтобы записывались! Остальные биты этого регистра читаются, и сохранятся при |=
Работало.
P.S. убедили... переделаю. Там состояние при чтении неопределенное, вдруг единицы выскочат? rolleyes.gif
Genadi Zawidowski
Цитата
неопределенное, вдруг единицы выскочат

На F107-м они и выскочили...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.