Soy un principiante y estoy usando una placa STM32 Blue Pill por primera vez. Completé un tutorial básico sobre cómo activar el pin PC13 (LED incorporado), pero ahora que estoy tratando de hacer que un LED externo parpadee en una placa de prueba, tengo problemas.
Estoy usando el STM32CubeIDE y permití que el IDE generara automáticamente el código de configuración que necesito para usar el pin PA0 como salida GPIO:
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
/* GPIO Ports Clock Enable */
__HAL_RCC_GPIOC_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET);
/*Configure GPIO pin : PC13 */
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/*Configure GPIO pin : PA0 */
GPIO_InitStruct.Pin = GPIO_PIN_0;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
}
Dentro de mi ciclo, simplemente estoy corriendo
while (1)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, 1);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, 0);
HAL_Delay(500);
}
A pesar de este código simple, no puedo hacer que el LED parpadee. Aquí hay una foto de mi circuito:
Para resumir, tengo los pines de tierra y 3.3v conectados a los rieles de alimentación de la placa de pruebas en la parte inferior (con un LED de alimentación rojo). Tengo un cable puente que conecta el pin A0 a la fila 25 y una resistencia de 330 Ω en serie con un LED de 5 mm con un voltaje directo de 3,0 V y una corriente directa de 20 mA. Luego conecto el cátodo del LED al riel de alimentación negativo en la placa de prueba (conectado a la tierra de la placa).
He intentado intercambiar cables de puente, pines de salida, LED, resistencia, pero nada ha funcionado. Conecté el cable de puente de pines al riel de alimentación positivo y el LED se iluminó (como se esperaba), así que no creo que haya ningún problema con mi circuito. También reprogramé la MCU para asegurarme de que mi programa se estaba cargando correctamente. ¿Quizás estoy malinterpretando la relación entre el pin y el suelo? Cualquier ayuda sería apreciada.
Desea alternar el pin 0 del Puerto A, pero en realidad está alternando el pin 0 del Puerto C.
keith
brahans