Author:AXYZdong 自动化专业 工科男 有一点思考,有一点想法,有一点理性! 定个小小目标,努力成为习惯!在最美的年华遇见更好的自己! @AXYZdong,首发,AXYZdong原创 唯一博客更新的地址为: 👉 AXYZdong的博客 👈
插播一条反爬虫信息,读者可以忽略:
定时器最基本功能:定时
定时发送 USART 数据定时采集 AD 数据等定时器与 GPIO 结合
测量输入信号脉冲宽度产生输出波形 等 ▲ 各个定时器的特性基本定时器 :TIM6 和 TIM7 ,基本功能完全一样,但所占资源彼此完全独立。
▲ 基本定时器的功能框图 基本定时器时钟只能来自内部时钟基本定时器的内部时钟(CK_INT)频率为 84MHz基 本定时器还专门用于 DAC 转换触发只要设置 CK_PSC 和 TIMx_ARR 这两个寄存器的值就可以控制事件生成的时间T o u t = ( A R R + 1 ) ⋅ ( P S C + 1 ) T I M x C L K Tout = \frac{(ARR + 1)\cdot(PSC + 1)}{TIMxCLK} Tout=TIMxCLK(ARR+1)⋅(PSC+1)
T o u t Tout Tout:溢出时间,即定时多长时间 T I M x C L K TIMxCLK TIMxCLK:定时器时钟频率 //定时器时钟源 TIMxCLK = 2 * PCLK1 25 // PCLK1 = HCLK / 4 26 // => TIMxCLK=HCLK/2=SystemCoreClock/2=84MHz A R R ARR ARR:定时器周期,初始化结构体时用 TIM_Period 表示 uint32_t TIM_Period; /*!< Specifies the period value to be loaded into the active Auto-Reload Register at the next update event. This parameter must be a number between 0x0000 and 0xFFFF. */ P S C PSC PSC:预分频大小,初始化结构体时用 TIM_Prescaler 表示 uint16_t TIM_Prescaler; /*!< Specifies the prescaler value used to divide the TIM clock. This parameter can be a number between 0x0000 and 0xFFFF */比如我们需要一个 1s 周期的定时器,具体这两个寄存器值该如何设置。
假设,我们先设置 TIMx_ARR寄存器值为 9999 ,即当 TIMx_CNT 从 0 开始计算,刚好等于 9999 时生成事件,总共计数 10000 次,那么如果此时时钟源周期 为 100us 即可得到刚好 1s 的定时周期。
接下来问题就是设置 TIMx_PSC 寄存器值使得 CK_CNT 输出为 100us 周期 (10000Hz) 的时钟。预分频器的输入时钟 CK_PSC 为 84MHz,所以设置预分频器值为 (8400-1) 即可满 足。
基本定时器循环定时 1s ,并使能定时器中断,每隔 1s 在定时器中断服务函数使 LED 状态翻转。
【参考文献】
[1] 《零死角玩转 STM32—基于野火 F407[霸天虎]开发板 》
「你可能还想看」系列文章: 【STM32】点亮LED 【STM32】GPIO输入—按键检测 【STM32】0.96寸OLED显示屏(7针SPI协议)软件模拟SPI 【STM32】1.44寸TFT液晶屏显示字符、汉字和图片 【STM32】stm32f407 + DS18B20 碰出不一样的火花 【STM32】5分钟了解STM32的串口通信 【STM32】串口通信—用代码与芯片对话 【STM32】串口通信出现乱码(使用官方标准库) 【STM32】EXTI—外部中断/事件控制器 【STM32】PWM 输出 (标准库)
【STM32】CubeMX+HAL 点亮LED 【STM32】CubeMX+HAL 输出PWM
【STM32】ST-LINK下载器下载后需复位,程序才运行的问题
其他相关文章: 【信号与系统】笔记合集,你确定不收藏吗?我已经收藏了 我用50行代码居然「让天猫精灵把客厅灯开了」 流程图在线绘制,快速、便捷、高效!
本次的分享就到这里
好书不厌百回读,熟读自知其中意。将学习成为习惯,用知识改变命运,用博客见证成长,用行动证明努力。 如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦! 听说 👉 点赞 👈 的人运气不会太差,每一天都会元气满满呦!^ _ ^ ❤️ ❤️ ❤️ 码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了👉关注👈我哦! 更多精彩内容请前往 AXYZdong的博客
如果以上内容有任何错误或者不准确的地方,欢迎在下面 👇 留个言。或者你有更好的想法,欢迎一起交流学习~~~
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=33io4h3lf84k4
