Estoy usando 4 LEDs conectados a diferentes pines en el descubrimiento STM32F4: PA6, PD8, PH0, PD1. Todos estos pines se han configurado como salida con la misma función:
void initPins(uint32_t ahb_gpio, GPIO_TypeDef * gpio, uint16_t gpio_pin)
{
GPIO_InitTypeDef GPIO_InitDef;
RCC_AHB1PeriphClockCmd(ahb_gpio, ENABLE);
GPIO_InitDef.GPIO_Pin = gpio_pin;
GPIO_InitDef.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitDef.GPIO_OType = GPIO_OType_PP;
GPIO_InitDef.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_InitDef.GPIO_Speed = GPIO_Speed_100MHz;
//Initialize pins
GPIO_Init(gpio, &GPIO_InitDef);
}
...
initPins(RCC_AHB1Periph_GPIOA, GPIOA, GPIO_Pin_6);
initPins(RCC_AHB1Periph_GPIOD, GPIOD, GPIO_Pin_8);
initPins(RCC_AHB1Periph_GPIOH, GPIOH, GPIO_Pin_0);
initPins(RCC_AHB1Periph_GPIOD, GPIOD, GPIO_Pin_1);
Los tres pines de GPIOA y GPIOD funcionan como deberían, pero no puedo hacer que el pin de GPIOH funcione. Intenté también conectar el 5th LED a PH1 y configurarlo como salida, pero no sirve de nada, tampoco funcionará. También intenté usar la biblioteca TM GPIO para configurar los pines:
TM_GPIO_Init(
GPIOH,
GPIO_Pin_0 | GPIO_Pin_1,
TM_GPIO_Mode_OUT,
TM_GPIO_OType_PP,
TM_GPIO_PuPd_NOPULL,
TM_GPIO_Speed_High
);
pero tampoco funcionará. Veo que estos dos pines pueden usarse también para el oscilador. ¿Eso está interfiriendo con su configuración? ¿Alguien sabe por qué estos pines no funcionan?