1. STM32F103RC定时器中断基础认知
在嵌入式开发领域,定时器中断是最基础也最核心的功能之一。STM32F103RC作为STMicroelectronics推出的经典Cortex-M3内核微控制器,其TIMER1外设提供了强大的定时功能。通过CubeMX图形化配置工具,我们可以快速实现周期性中断的配置,但其中涉及的关键参数设置和底层原理往往被新手开发者忽视。
TIMER1属于STM32的通用定时器,具有16位自动重装载计数器、可编程预分频器以及多种触发模式。与基本定时器不同,它支持向上、向下和中央对齐三种计数模式,能够产生DMA请求和捕获/比较中断。在CubeMX中配置TIMER1中断时,开发者需要理解几个核心概念:
- 时钟源选择:TIMER1可以连接内部时钟(APB2)或外部触发
- 预分频器(Prescaler):将系统时钟分频后作为定时器时钟
- 计数器周期(Period):决定中断触发频率的关键参数
- 计数模式:影响定时精度和中断行为
- 中断优先级:在多中断系统中需合理配置NVIC
提示:STM32F103RC的TIMER1挂载在APB2总线上,默认时钟为72MHz。实际定时器时钟可能经过倍频,需查看RCC配置确认。
2. CubeMX工程创建与基本配置
2.1 开发环境准备
开始前确保已安装:
- STM32CubeMX 6.x或更新版本
- STM32F1系列HAL库支持包
- 配套IDE(Keil MDK/IAR/STM32CubeIDE)
新建工程时选择STM32F103RC芯片型号,注意区分封装类型(本案例使用LQFP64封装)。时钟配置中启用外部高速晶振(HSE)作为时钟源,APB2预分频器保持不分频(72MHz)。
2.2 TIMER1外设使能
在Pinout & Configuration界面左侧外设列表中找到TIM1,工作模式选择"Internal Clock"。关键参数配置如下:
| 参数项 | 推荐值 | 说明 |
|---|
