STM32——学习定时器定时0.2s

引言

苦苦一顿搬运后发现

又是719,又是19999.感觉自己的天都要塌了!

到这里我只想说如果你不会使用STM32的定时器与中断,你的STM32就和一块电源一样!没有任何灵活性与特殊性。

TIMER

PSC

当单片机开始计时总线上的72MHZ脉冲就会进入预分频器进行分频 然后为我们的TIMx时钟提供一个相应频率的脉冲。

解释:72MHZ指的是1s会产生72 000 000个脉冲信号。

如果我们的分频因数为719(PSC=719)我们就会进行72MHZ/(719+1)=100KHZ

这样我们会有一个一个频率为100KHZ的脉冲进入我们的时钟TIMx。(1s可以产生100 000个脉冲)

CNT

我们使用的是TIM6(基本定时器只能上升沿触发!)

一个脉冲来到包含一个上升沿,这样我们的CNT计数定时器就会+1。

ARR

那数到到少会停止呢!就需要靠我们的ARR(重载计时器)。ARR=19999,指的是(19999+1=20000)20000个脉冲为一组周期,当我们数到20000个脉冲时-》我们CNT反转成为0!产生一个中断(IT=1)。. 

1s产生100 000个周期。那20 000个周期代表0.2s!!!!这样子我们就实现了每隔0.2s计数一次!!!

范围注意

注意:我们的PSC,ARR,CNT都为16个2进制数,所以它们的最大取值是【 2^{16}-1】=65535。所以我们在使用时注意范围哦!

代码使用

我们先看tim固件库

我们直接初始化!

 

我们先打开TIM6的定时器在进行 两次初始化。一次是将定时器的值全部设为默认值!另一次是将我们设定的预分频系数,定时器模式,ARR写入TIM6时钟内!最后使能TIM6的定时器!!!

打开表示可以使用,但是要开始计数我们需要使能计时器!!!

 

不信的话看看我们的Cmd函数,我们将CR1(控制寄存器)的最低位(CEN使能位)置为一(打开计时器) 

怎么使用是后话,我们先学到这里吧!

  • 7
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在STM32上实现定时1秒的功能,可以使用SysTick定时器。SysTick定时器是一个硬件定时器,用于产生SYSTICK异常,可以作为整个系统的时基。在SysTick.h文件中,可以找到SysTick_Init函数,用于初始化SysTick定时器。在Timer.c文件中,可以找到TimerBase_Config函数,用于配置定时器的参数。通过修改TimerBaseInitStructure.TIM_Period和TimerBaseInitStructure.TIM_Prescaler的值,可以实现不同的定时时间。在这个例子中,TimerBaseInitStructure.TIM_Period的值为10000,TimerBaseInitStructure.TIM_Prescaler的值为7200,所以定时器的周期为1秒。因此,可以调用SysTick_Init函数来初始化SysTick定时器,并在TimerBase_Config函数中配置定时器的参数,以实现定时1秒的功能。 #### 引用[.reference_title] - *1* *2* [【STM32】用SysTick滴答定时器定时1s实现LED亮灭循环](https://blog.csdn.net/u011454061/article/details/128222185)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [stm32通用定时器1s延时实现LED闪烁](https://blog.csdn.net/AD_faith/article/details/122915108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值