#include "main.h"
// Hàm khởi tạo GPIO
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
int main(void)
{
// Khởi tạo HAL
HAL_Init();
// Cấu hình hệ thống đồng hồ
SystemClock_Config();
// Cấu hình GPIO
MX_GPIO_Init();
while (1)
{
// Bật LED (PA5)
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET); // LED sáng
HAL_Delay(500); // Đợi 500ms
// Tắt LED (PA5)
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET); // LED tắt
HAL_Delay(500); // Đợi 500ms
}
}
// Hàm khởi tạo GPIO (PA5 làm LED output)
static void MX_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
// Cấu hình chân PA5 làm đầu ra
__HAL_RCC_GPIOA_CLK_ENABLE(); // Bật đồng hồ cho GPIOA
GPIO_InitStruct.Pin = GPIO_PIN_5; // Chọn PA5
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; // Chế độ Push-Pull
GPIO_InitStruct.Pull = GPIO_NOPULL; // Không kéo
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; // Tốc độ thấp
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); // Khởi tạo GPIOA với cấu hình trên
}
// Cấu hình đồng hồ hệ thống (dùng cho STM32F103, nếu cần điều chỉnh tùy theo vi điều khiển khác)
void SystemClock_Config(void)
{
// Cấu hình đồng hồ hệ thống (tự động cấu hình trong STM32CubeMX)
// Cấu hình đồng hồ, nếu cần
}