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 生态最大的优势是资料与例程丰富。