Ich bin Anfänger und benutze zum ersten Mal ein STM32 Blue Pill Board. Ich habe ein grundlegendes Tutorial zum Aktivieren des PC13-Pins (On-Board-LED) abgeschlossen, aber jetzt, wo ich versuche, eine externe LED auf einem Steckbrett zum Blinken zu bringen, habe ich Probleme.
Ich verwende die STM32CubeIDE und habe der IDE erlaubt, den Konfigurationscode automatisch zu generieren, den ich benötige, um Pin PA0 als GPIO-Ausgang zu verwenden:
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);
}
Innerhalb meiner Schleife laufe ich einfach
while (1)
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, 1);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0, 0);
HAL_Delay(500);
}
Trotz dieses einfachen Codes bekomme ich die LED nicht zum Blinken. Hier ein Bild meiner Schaltung:
Zusammenfassend habe ich die 3,3-V- und Erdungsstifte mit den Stromschienen des Steckbretts unten verbunden (mit einer roten Power-LED). Ich habe ein Überbrückungskabel, das den A0-Pin mit Reihe 25 verbindet, und einen 330-Ω-Widerstand in Reihe mit einer 5-mm-LED mit einer Durchlassspannung von 3,0 V und einem Durchlassstrom von 20 mA. Ich verbinde dann die Kathode der LED mit der negativen Stromschiene auf dem Steckbrett (mit Platinenmasse verbunden).
Ich habe versucht, Überbrückungskabel, Ausgangsstifte, LEDs und Widerstände auszutauschen, aber nichts hat funktioniert. Ich habe das Pin-Überbrückungskabel an die positive Stromschiene angeschlossen und die LED leuchtete (wie erwartet), also glaube ich nicht, dass etwas mit meiner Schaltung nicht stimmt. Ich habe auch die MCU neu programmiert, um sicherzustellen, dass mein Programm korrekt hochgeladen wurde. Vielleicht verstehe ich die Beziehung zwischen Stift und Masse falsch? Jede Hilfe wäre willkommen.
Sie möchten Pin 0 von Port A umschalten, aber eigentlich schalten Sie Pin 0 von Port C um.
mkeith
brhans