STM32L1xx HAL_GPIO_Init Problema

1

Estoy desarrollando una aplicación para un proyecto de la Universidad en mi placa STM32L1DISCO con la MCU STM32L152RC.

He configurado los pines y he generado el código de inicio a través de STM32CubeMX. Estoy usando Atollic TrueSTUDIO como el IDE.

El problema es que el código de inicio generado no se puede ejecutar en mi MCU. Después de dedicar mucho tiempo a la depuración, descubrí que el problema del código es que esta es una línea que utiliza la biblioteca gpio de HAL:

HAL_GPIO_Init (IDD_CNT_EN_GPIO_Port, & GPIO_InitStruct);

Aunque el código anterior es correcto,

  GPIO_InitTypeDef GPIO_InitStruct;

  /* GPIO Ports Clock Enable */

 __HAL_RCC_GPIOC_CLK_ENABLE();

  __HAL_RCC_GPIOA_CLK_ENABLE();

__HAL_RCC_GPIOB_CLK_ENABLE();

  /*Configure GPIO pin Output Level */

HAL_GPIO_WritePin(IDD_CNT_EN_GPIO_Port, IDD_CNT_EN_Pin, GPIO_PIN_RESET);

  /*Configure GPIO pin : IDD_CNT_EN_Pin */

GPIO_InitStruct.Pin = IDD_CNT_EN_Pin;

GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;

GPIO_InitStruct.Pull = GPIO_NOPULL;

GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;

Después de recorrer el código línea por línea durante la depuración, descubrí que la función de inicio HAL GPIO no se ejecuta y en su lugar da el error de tiempo de ejecución: "El objetivo no responde, lo vuelve a intentar ...".

Cuando comento la línea de inicio HAL GPIO, el programa se ejecuta sin problemas.

STM32CubeMX incluye la biblioteca HAL en el código. En la parte superior hay,

incluye "stm32l1xx_hal.h"

Entonces, no estoy seguro de qué está causando el problema que estoy viendo. Realmente agradecería su ayuda en esto, ya que no sé qué intentar a continuación.

Gracias.

    
pregunta Rishabh Kumar

1 respuesta

2

IDD_CNT_EN está conectado al circuito de medición de potencia a bordo. Si no se usa correctamente, interrumpirá temporalmente la fuente de alimentación V DD , restableciendo el MCU.

Vea los esquemas en el Manual del usuario

La configuración de IDD_CNT_EN para una salida baja inicia el temporizador externo U3. Después de un retraso de 150 ms, Q13 de U3 aumenta, FET 1 en U20 se desactiva, y la resistencia 1kΩ en derivación R22 ahora está conectada en serie con V DD para mejorar la precisión de la medición de potencia. La MCU debe ponerse en modo LOWPOWER, STOP o STANDBY, donde el consumo está muy por debajo de 1 mA, dentro de los 150 ms de la configuración IDD_CNT_EN a baja, y volverla a alta en menos de 150 ms después de que llegue la señal de activación en PA0 .

    
respondido por el berendi

Lea otras preguntas en las etiquetas