搭建工程

1、配置工程属性

stm32cubeMX ll库选择_c语言

2、确认时钟源

stm32cubeMX ll库选择_单片机_02

3、配置系统时钟

stm32cubeMX ll库选择_单片机_03

4、配置定时器

这里选择的定时器为TIM3,定时时间为1ms

stm32cubeMX ll库选择_stm32cubeMX ll库选择_04


把定时器设置自动重装载寄存器 ARR 的值为 1000,设置时钟预分频器为 71,则驱动计数器的时钟: CK_CNT = CK_INT / (71+1)=1M,则计数器计数一次的时间等于: 1/CK_CNT=1us,当计数器计数到 ARR 的值 1000 时,产生一次中断,则中断一次的时间为: 1/CK_CNT*ARR=1ms

5、使能定时器中断

stm32cubeMX ll库选择_单片机_05

6、 配置GPIO

为了验证定时器,我们可以让小灯每隔1s闪烁一次

stm32cubeMX ll库选择_stm32_06

7、生成代码

配置好生成工程名与路径后,点击 GENERATE CODE 会在设定的路径成功生成代码,选择打开工程

代码编写

CubeMx生成的代码有些寄存器没有使能,我们不能直接使用,需要我们自己使能相关寄存器

1、配置TIM3相关寄存器
LL_TIM_EnableCounter(TIM3);  //使能计数
	LL_TIM_EnableIT_UPDATE(TIM3);  //使能更新中断
	LL_TIM_EnableAllOutputs(TIM3);

stm32cubeMX ll库选择_寄存器_07

2、编写中断函数

stm32cubeMX ll库选择_单片机_08

3、编写main函数

通过关键字extern使用stm32f10x_it.c中的变量time

stm32cubeMX ll库选择_单片机_09

4、下载程序

将程序下载到开发板,可以观察到LED每隔1s闪烁一次