// ---------------------------------------------------------------------------
// (| " main.c "|)
// (| " Esta función principal enciende un LED durante 200 mseg, luego lo "|)
// (| " apaga durante 200 milisegundos, indefinidamente. Contiene "|)
// (| " cabecera, argumentos y sentencias. "|)
// (| " "|)
// (| " Este código de ejemplo es de dominio público. "|)
// (| " "|)
// (| " Board-st-nucleo-l432kc "|)
// (| " "|)
// (| " Maker/Developer: jorgechac© - Técnico Laboral en Programación UNAB"|)
// (| " Visita https://jorgechac.blogspot.com "|)
// (| " "|)
// (| " Venta de accesorios Arduino/Raspberry Pi Pico/ESP32 "|)
// (| " Whatsapp y Ventas NEQUI +573177295861 "|)
// (| " Bucaramanga - Colombia "|)
// (| " Simulación https://wokwi.com/projects/340121837338886738 "|)
// ---------------------------------------------------------------------------
// Se utiliza la biblioteca STM32 HAL (Hardware Abstraction Layer), que
// proporciona una interfaz de alto nivel para interactuar con el hardware
// STM32
#include "stm32l4xx_hal.h"
// Estas líneas definen el pin del LED, el puerto GPIO al que está
// conectado y una macro para habilitar el reloj del puerto GPIO
#define LED_PIN GPIO_PIN_4
#define LED_GPIO_PORT GPIOB
#define LED_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
int main(void)
{
HAL_Init(); // Se inicializa el sistema HAL
LED_GPIO_CLK_ENABLE(); // Se habilita el reloj del puerto GPIO asociado al LED
GPIO_InitTypeDef GPIO_InitStruct; // Se configura el pin del LED como salida push-pull
GPIO_InitStruct.Pin = LED_PIN;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
HAL_GPIO_Init(LED_GPIO_PORT, &GPIO_InitStruct);
while (1)
{
HAL_GPIO_TogglePin(LED_GPIO_PORT, LED_PIN); // el LED se alterna encendido/apagado cada 200 ms
HAL_Delay(200);
}
}
void SysTick_Handler(void) // Se incrementa la cuenta de ticks utilizada
// por la función de retardo (HAL_Delay)
{
HAL_IncTick();
}
void NMI_Handler(void)
{
}
void HardFault_Handler(void)
{
while (1) {}
}
void MemManage_Handler(void)
{
while (1) {}
}
void BusFault_Handler(void)
{
while (1) {}
}
void UsageFault_Handler(void)
{
while (1) {}
}
void SVC_Handler(void)
{
}
void DebugMon_Handler(void)
{
}
void PendSV_Handler(void)
{
}
Loading
st-nucleo-l432kc
st-nucleo-l432kc