PC14 y PC15 en STM32F401 no funcionan como entradas

2

Estoy tratando de usar PC14 y PC15 en la placa Nucleo F401RE, como entradas usando este simple código:

  RCC_LSEConfig(RCC_LSE_OFF);


  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

  // initialize ID pins as inputs
  GPIO_InitTypeDef gpio_init_struct;
  GPIO_StructInit(&gpio_init_struct);
  gpio_init_struct.GPIO_Mode = GPIO_Mode_IN;
  gpio_init_struct.GPIO_PuPd = GPIO_PuPd_UP;
  gpio_init_struct.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
  GPIO_Init(GPIOC, &gpio_init_struct);


  // read ID pins
  uint8_t inputs_state = 0;
  inputs_state |= GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13);
  inputs_state |= GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_14) << 1;
  inputs_state |= GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_15) << 2;

Desafortunadamente, mientras que PC13 funciona como se espera, PC14 y PC15 siempre se mantienen altos en caso de configuración de pull-up o bajos en caso de pull-down.

El reference en la página 155 estados:

  

Los pines del oscilador LSE OSC32_IN y OSC32_OUT se pueden usar como   E / S de PC14 y PC15 de propósito general, respectivamente, cuando el LSE   El oscilador está apagado. Las E / S PC14 y PC15 solo están configuradas como LSE   los pines del oscilador OSC32_IN y OSC32_OUT cuando el oscilador LSE está encendido.   Esto se hace estableciendo el bit LSEON en el registro RCC_BDCR. los   LSE tiene prioridad sobre la función GPIO.

Así que estoy desactivando LSE, pero aún no hay resultados. ¿Qué me estoy perdiendo?

    
pregunta mactro

1 respuesta

3

Uno de los problemas que encuentro es la configuración del puente

Por defecto, ambos puentes SB48 y SB49 están abiertos.

Referencia: Esquema de Nucleo F401RE

La segunda forma es medir más tarde la resistencia de los resistores resaltados y
conector CN7 números de pin 25 y 27 .

Si la configuración del hardware está bien, debería leer cero ohms aproximadamente.

    
respondido por el Umar

Lea otras preguntas en las etiquetas