手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

HAL库之STM32F411定时器TIM1更新中断

时间:2024-10-12 17:08:30

用STM32CubeMX生成TIM1的代码,产生一个1s定时的中断。

工具/原料

STM32CubeMX软件

Keil编译软件

STM32F411开发板

ST-LINK

新建STM32F411RE的工程

1、打开STM32CubeMX,点击New Project开始生产一个新的项目。

HAL库之STM32F411定时器TIM1更新中断

2、找到STM32F411RE芯片,双击它。

HAL库之STM32F411定时器TIM1更新中断
HAL库之STM32F411定时器TIM1更新中断

配置TIM1参数

1、进入Project,选择字斤谯噌最上面的“Pin”项目,将左边的TIM1展开,点击Clock Source右侧的箭头,选择内部时钟(Internal RC),是能TIM1。

HAL库之STM32F411定时器TIM1更新中断
HAL库之STM32F411定时器TIM1更新中断

2、切换到Clock Configuration,可以看到时钟树,我这里选择内部时钟,不分频,即定时器时钟就是外部晶振时钟,我这个时16M。灰色部分都是无效的。

HAL库之STM32F411定时器TIM1更新中断

3、切换到Configuration,可以看到已经使能的外设,双击TIM1。

HAL库之STM32F411定时器TIM1更新中断

4、按需求配置好TIM1 Configuration,点击“Parameter Settings”,按途中配置设置好。Counter Settings的Prescal髫潋啜缅er为分配,因为输入时钟时16M的,选择16分配就可以产生1微秒的定时器时钟。Counter Mode选择UpCounter Period就是定时器的计数周期,选择10000,注意这个数其实保存再一个16位寄存器当中,最大只能是65535Repetition Counter设置重复次数,99会重复100次。这样定时器计数10000*100次便会进入定时器中断,也就是1s。

HAL库之STM32F411定时器TIM1更新中断

5、切换到“NVIC Settings”,打开TIM1 update interrupt and TIM10 global interrupt打开TIM1的NVIC。

HAL库之STM32F411定时器TIM1更新中断
HAL库之STM32F411定时器TIM1更新中断

生产HAL库代码

1、点击菜单栏的“Project”->“Generate Code”。

HAL库之STM32F411定时器TIM1更新中断

2、设置好工程名称、目录,以及开发环境,这选择Keil5即MDK-ARM V5,确认后点击Ok。

HAL库之STM32F411定时器TIM1更新中断

3、耐心等待代码生产完毕。

HAL库之STM32F411定时器TIM1更新中断

4、代码生产成功后弹出如下对话框,选择“Open Project”打开工程。

HAL库之STM32F411定时器TIM1更新中断

代码补全和编译调试

1、STM32CubeMX生产的代码还需要经过一番加工,自动生成的知识使能了鲍伊酷雪NVIC但是并没有配置好对应的中断,所以还需要添加一段小代码。打开工程后,切换到mai荏鱿胫协n.c的“static void MX_TIM1_Init(void)”

HAL库之STM32F411定时器TIM1更新中断

2、添加HAL_TIM_Base_Start_IT(&htim1);使能TIM1中断。

HAL库之STM32F411定时器TIM1更新中断

3、在TIM1的中断函数设置好断点,这样调试的时候就可以知道是否进入了这个中断函数。

HAL库之STM32F411定时器TIM1更新中断
HAL库之STM32F411定时器TIM1更新中断

4、编译并进入调试模式。

HAL库之STM32F411定时器TIM1更新中断
HAL库之STM32F411定时器TIM1更新中断

5、运行调试,可以看到进入到了TIM1中断。

HAL库之STM32F411定时器TIM1更新中断
HAL库之STM32F411定时器TIM1更新中断
© 手抄报圈