目标:验证 STM32F411RE 的时钟配置是否正确
方法:通过 1 秒闪烁一次的 LED 观察是否节拍正常
1、硬件连接:
NUCLEO-F411RE 自带 LED( LED2,连接在 GPIOA5),无需外接。
图1 NUCLEO-F411RE LED2 Top Layout
2、STM32CubeMX 配置:
① 新建项目
选择 NUCLEO-F411RE

② Pinout 设置:
确保 PA5 设置为 GPIO_Output(默认已配置)。

③ 设置系统时钟:
点进 Clock Configuration,确保 SYSCLK 为 84MHz(默认 HSE + PLL)。
④ 配置定时器 TIM2:
- Clock Source: Internal Clock
- Prescaler: 8399
- Counter Period: 9999
解释: Timer Clock = 84MHz / (8399 + 1) = 10kHz Period = 9999 ➜ 中断周期 = 1秒
- 启用 NVIC 中断: 勾选 TIM2 global interrupt

3、关键代码
关键代码已注释
//-------省略-------
/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD *
/int ledState = 0; // 定义 LED 状态
/* USER CODE END PD */
//-------省略-------
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) //
翻转 GPIO
{
if(htim->Instance == TIM2)
{
ledState = !ledState;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, ledState ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
}
/* USER CODE END 0 */
//-------省略-------
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_TIM2_Init();
HAL_TIM_Base_Start_IT(&htim2); // 启动带中断的定时器
while (1)
{
// 主循环中不需要任何操作
}
}
//-------省略-------4、实现效果

我要赚赏金
