STM32 从入门到实战 嵌入式开发

STM32 HAL 库入门:GPIO 与定时器实战

STM32 HAL 库实战

一、CubeMX 生成工程

先配时钟树(如 72MHz 主频),再勾选要用的外设,生成工程骨架,省去手写寄存器初始化

二、GPIO 点灯

HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET);  // 拉低点亮
HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_13);                 // 翻转

三、定时器中断

定时器本质是计数器 + 预分频,溢出后触发中断:

HAL_TIM_Base_Start_IT(&htim2);   // 启动定时器并开中断

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
  if (htim->Instance == TIM2) toggle_led();  // 1ms 周期执行
}

四、HAL 与寄存器

HAL 封装了繁琐的寄存器操作,但排查问题仍需回到底层手册。两者都要会看。

小结

先跑通工程,再逐个外设积累,ST 生态最大的优势是资料与例程丰富。