STM32CubeMX 软件中如何设置定时器,实现基本定时器中断以1Hz的频率翻转LED?
1、新建STM32CubeMx工程,选择STM32F103R6单片
2、然后对TIM1或者TIM2进行设置,本次我们使用TIM2做中断实验,选择内部时钟作为定时器时钟
内部时钟
3、STM32时钟配置保持默认不变,因为我们用proteus仿真来验证本次实验;
4、然后对TIM2进行定时中断时间的设置 ,如下图所示:
TIM2设置
如果我们想要定时器200ms产生一次中断,单片机的选择内部8M晶振,我们将定时器的分频系数Psc设置为7999; 那么根据公式
定时器参数设置
我们根据Arr的计算公式
可以得出:Arr=199;
那么,我们可以TIM2进行参数设置,分频系数Psc=7999就是将HCLK(输入给定时器的时钟频率8MHz)进行分频, 得到CLK=1KHz;
定时周期Arr=199; 也就是说定时周期是200个周期,已知1个周期的时间是1ms(1/CLK),那么总的定时周期就是200ms;
TIM2设置
综上,定时器经过上述设置,即可实现每隔200ms就进行一次中断;
TIM2参数设置
5、然后对中断进行优先级和使能定时器2进行设置,如下图所示:
中断进行优先级和使能定时器2
6、生成代码
对项目进行设置
生成代码
那么以上,就是STM32CubeMX 软件中STM32实现基本定时器中断的设置与操作了;
7、在keil软件中修改代码:
①在如图所示位置添加如下图所示代码
打开TIM2基本定时
②在如图所示位置编写定时器中断服务函数
定时器中断服务函数
完成上述代码之后,就可以
8、在proteus中加载keil软件生成的hex文件,观察实验现象如下视频所示