3加密狗计算pin码_STM32CubeMx入门教程 (3) 定时器的使用

导语“ 使用STM32CubeMx 生成初始化定时器代码,实现定时器特定定时”


--------第一节 系统要求----------


•硬件:野火指南者

•软件 CUbeMX & KEIL

•F103总线系统框图

 项目文件还是在LED,USART 项目的基础上添加配置代码。

 26aaf956b679fa592d4ea3a40b869ce8.png

我们可以看到共8个定时器,TIM1在APB2总线上,其他的在APB1系统总线上。


-------第二节CubeMx配置-------------


  • 时钟配置

在CubeMX的时钟配置中,可以看到,TIM1 和TIM2时钟是72MHz。

d0f3c9cc04f3a80cf4f6b3f45950ad3f.png

  • 定时器TIME1配置

b353dcb8368a140d4faba4496b4681d3.png

使能TIME1全局中断:

15c96612b49e98c2df7fb6403344506a.png

  • TIME2的配置

6991ef37f7d140de75d714e5befaf45b.png

TIME1 & TIME2 使用内部时钟源,参数配置的时候通过计算实现1S的定时中断。

 定时:(72000000/(7199+1)/(9999+1))= 1Hz。

可以设置TIME2 定时2S,参数设置为:(72000000/(7199+1)/(19999+1))= 0.5Hz

ecd74e1d8659f9bc413d283063d85283.png

使能TIME2全局中断模式:

9e1ee232ff9d04719e26a820d1bcfd16.png


-----------第三节 MDK代码编写------------------


(1)在main.c 中编写定时器中断回调函数,我们只需编写中断回调函数,不需要直接编写中断处理函数。

/* USER CODE BEGIN 4 */void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){   if(TIM1 == htim->Instance){     HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);     printf("\nTIM1 定时1s 时间到\t\n");     }     if(TIM2 == htim->Instance){       HAL_GPIO_TogglePin(LED_G_GPIO_Port,LED_G_Pin);       printf("\nTIM2 定时2s 时间到\t\n");     }}/* USER CODE END 4 */

(2)main主函数的while中为空,使用定时中断处理应用。

dd6077c473432ce7c0ed2133f586347f.png

(3)在main.c的主函数初始化代码区中添加 开始定时函数,打开TIME1 & TIME2的定时器。

 /* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(&htim1);HAL_TIM_Base_Start_IT(&htim2);  /* USER CODE END 2 */

------------第四节 效果显示----------------


8d3bb02c3f8969a646fca9a3d7a8f342.png

总结:(1)cubeMX 定时器的配置很简单,选择内部时钟源,配置定时器定时参数(时间的计算方法套公式就可以),使能定时器中断。

(2)在应用代码中使用HALTIMBaseStartIT(&htim1)打开定时器。

编写定时器定时中断回调函数实现定时应用:

void HALTIMPeriodElapsedCallback(TIM_HandleTypeDef *htim)


aa5eb739e349524dbcb891f8cd5af14a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值