打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
STM32单片机开发之定时器的基本用法

1、STM32单片机定时器简介

定时器,顾名思义,就是用来定时的器件,可以设置定时的时间,到了时间执行操作或者触发通知等,对于单片机和数字电路来说,定时器本质上是根据输入时钟的脉冲进行计数的器件,具体输入时钟的频率是多少、计数的数是多少等这些参数都可以进行设置,这些参数可决定计数器计数的时间。通过定时器的基本计数、计时的功能可延伸出更高级的功能,比如对电机的精确控制、对特定代码执行周期的精确控制、对脉冲时间的测量等,总之只要与时间有关的高级功能,可能都可通过定时器实现,所以说定时器是非常有用的一个单片机外设。

STM32的定时器分为基本定时器、通用定时器和高级控制定时器,基本定时器只具有计数的功能,通用定时器具有计数的功能、对输入脉冲信号捕获、对输出信号比较、产生PWM(脉宽调制)波形功能、单脉冲模式输出功能,高级控制定时器除了具有通用定时器功能以外还具有死区时间可编程的互补输出功能。

2、STM32单片机定时器的基本用法

作为定时用时的基本用法流程

3、基本定时器实验

基本需求:1s触发一次定时器中断事件,即计数溢出中断

以STM32F103为例,STMF32F1系列的定时器预分配系数最大为65533,即16位二进制数的最大值,计数周期最大数也是65533,定时器的输入时钟频率最大为总线的时钟频率,可以是单片机最大的时钟频率72Mhz。

设计定时器初始化参数及例程如下:

采用通用定时器TIM2为例,时钟源为内部时钟,计数模式为向上计数;

定时器时钟源内部总线APB2的预分频器系数为1,时钟频率为64Mhz;

定时器的预分配系数如果是64000的话,那么计1个数据的时长为1/(64000000/64000)=1/1000=0.001s,然后可设置计数周期为1000,则会1s产生一次计数溢出中断;

程序设计逻辑:

main.c里设置一个全局变量,初始化值为0,当TIM2计数器产生溢出中断时,将此全局变量置1,main函数主循环里判断全局变量,如果是1,则输出当前滴答时钟毫秒数,来验证定时器计数和计时是否准确。

程序时钟配置:

TIM2定时器配置:

main主函数代码:

TIM2定时器初始化代码:

TIM2定时器中断代码:

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
中断是为使单片机具有对外部或者内部随机发生的事件实时处理而设
STM32
stm8s 独立看门狗和窗口看门狗的代码
STM32基本定时器
STM32F103的11个定时器详解
STM32 SysTick 系统时钟 超简易定时器SysTick
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服