实验开发板:野火霸道V1
定时器为:TIM3
定时时间为:1ms
STM32LL库系列教程——LL库工程配置流程
STM32LL库系列教程【一】——安装CubeMx软件
STM32LL库系列教程【二】——点亮LED小灯
STM32LL库系列教程【三】——USART中断实验
STM32LL库系列教程【四】——ADC单通道采集
STM32LL库系列教程【五】——DMA实现ADC单通道采集
STM32LL库系列教程【六】——通用定时器定时实验
STM32LL库系列教程【七】——通用定时器PWM实验
STM32LL库系列教程【八】——通用定时器输入捕获实验
STM32LL库系列教程【九】——SPI通信实验
STM32LL库系列教程【十】——IIC通信实验
搭建工程
1、配置工程属性
2、确认时钟源
3、配置系统时钟
4、配置定时器
这里选择的定时器为TIM3,定时时间为1ms
把定时器设置自动重装载寄存器 ARR 的值为 1000,设置时钟预分频器为 71,则驱动计数器的时钟: CK_CNT = CK_INT / (71+1)=1M,则计数器计数一次的时间等于: 1/CK_CNT=1us,当计数器计数到 ARR 的值 1000 时,产生一次中断,则中断一次的时间为: 1/CK_CNT*ARR=1ms
5、使能定时器中断
6、 配置GPIO
为了验证定时器,我们可以让小灯每隔1s闪烁一次
7、生成代码
配置好生成工程名与路径后,点击 GENERATE CODE 会在设定的路径成功生成代码,选择打开工程
代码编写
CubeMx生成的代码有些寄存器没有使能,我们不能直接使用,需要我们自己使能相关寄存器
1、配置TIM3相关寄存器
LL_TIM_EnableCounter(TIM3); //使能计数
LL_TIM_EnableIT_UPDATE(TIM3); //使能更新中断
LL_TIM_EnableAllOutputs(TIM3);
2、编写中断函数
3、编写main函数
通过关键字extern使用stm32f10x_it.c中的变量time
4、下载程序
将程序下载到开发板,可以观察到LED每隔1s闪烁一次