Now that I have connected successfully to the microcontroller, the logical next step is to blink an LED. I simply plan to test the functionality of the Debug RGB LED by writing some code to turn on and off each element of the RGB LED:
Microcontroller Pins:
Debug RGB LED:
I wrote functions for each LED for Turn On and Turn Off. I included Red, Green, Blue and all other color combinations. This will make it easier to toggle these LED's once the code gets more complicated:
void TurnOnRedLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET);
return;
}
void TurnOffRedLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_RESET);
return;
}
void TurnOnGreenLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_SET);
return;
}
void TurnOffGreenLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_RESET);
return;
}
void TurnOnBlueLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_SET);
return;
}
void TurnOffBlueLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_RESET);
return;
}
void TurnOnYellowLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_SET);
return;
}
void TurnOffYellowLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_RESET);
return;
}
void TurnOnPurpleLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_SET);
return;
}
void TurnOffPurpleLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_RESET);
return;
}
void TurnOnCyanLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_SET);
return;
}
void TurnOffCyanLED(void)
{
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_11, GPIO_PIN_RESET);
return;
}
I added some simple code in the main while loops to test each function:
while (1)
{
TurnOnRedLED();
HAL_Delay(1000);
TurnOffRedLED();
HAL_Delay(1000);
TurnOnGreenLED();
HAL_Delay(1000);
TurnOffGreenLED();
HAL_Delay(1000);
TurnOnBlueLED();
HAL_Delay(1000);
TurnOffBlueLED();
HAL_Delay(1000);
TurnOnYellowLED();
HAL_Delay(1000);
TurnOffYellowLED();
HAL_Delay(1000);
TurnOnPurpleLED();
HAL_Delay(1000);
TurnOffPurpleLED();
HAL_Delay(1000);
TurnOnCyanLED();
HAL_Delay(1000);
TurnOffCyanLED();
HAL_Delay(1000);
}
I then compiled and loaded this code to the micro and tested the SW:
Red:
Green:
Blue:
Yellow:
Purple:
Cyan:
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.