Поиск

Проблема с пинами PA13..PA15 на STM32F103


Бьюсь-бьюсь, да что-то не выходит! Сделал «вундервафлю» (про нее позже напишу) для работы с STM32F0x2 и STM32F103 в LQFP48 без пайки. Проверил все 10 STM32F072, купленных на али — все работают (как ни странно), да еще и dfu-util почему-то 128кБ флеша у них показал вместо положенных 64…
Стал модифицировать прошивку для работы с STM32F103. И тут-то выползла засада: у него на PA13..PA15 висит нафиг не нужный SWD/JTAG, а я на «вундервафле» на PA13 повесил внешнюю подтяжку USBDP (т.к. у F103 внутренняя отсутствует), а на PA14/15 — кнопки! Вот такой код

static void gpio_setup(void){ // Enable clocks to the GPIO subsystems, turn on AFIO clocking to disable SWD/JTAG RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_AFIOEN; // turn off SWJ/JTAG AFIO->MAPR = AFIO_MAPR_SWJ_CFG_DISABLE; // turn off USB pullup pin_set(GPIOA, 1<<13); // Set leds (PA0/PA4) as opendrain output GPIOA->CRL = CRL(0, CNF_ODOUTPUT|MODE_SLOW) | CRL(4, CNF_ODOUTPUT|MODE_SLOW); // Set buttons (PA14/15) as inputs with weak pullups, USB pullup (PA13) - opendrain output GPIOA->ODR = (1<<14)|(1<<15); // pullups GPIOA->CRH = CRH(13, CNF_ODOUTPUT|MODE_SLOW) | CRH(14, CNF_PUDINPUT|MODE_INPUT) | CRH(15, CNF_PUDINPUT|MODE_INPUT);
}

не спасает: почему-то ни кнопки не работают, ни подтяжка… Буду гуглить дальше, хотя, вроде бы, требовалось всего лишь отключить ненужные интерфейсы, предварительно затактировав шину AFIO.

UPD: отбой, это я нарукожопил в инициализации uart:

GPIOA->CRH = CRH(9, CNF_AFPP|MODE_NORMAL) | CRH(10, CNF_FLINPUT|MODE_INPUT);

(вместо |= поставил =, в итоге настройки «слетали» в дефолт). eddy_em.livejournal.com

Добавить комментарий