自学STM32第七天——基本定时器(stm32系统定时器)

自学STM32第七天——基本定时器(stm32系统定时器)

编码文章call10242025-07-18 13:41:223A+A-

定时器的内容比较多,然后最近一周工作太忙,中断了学习,还好这个周末有时间了,总结一下今天所学的吧。

定时器简单的说其实就是用来延时的,之前用到的delay函数也是用来延时的,为什么还要学习定时器呢?因为delay延时函数是纯软件的延时,延时不精准,而且是让CPU死等,效率不高。要知道毫秒级别的延时,CPU能干多少事情啊,太浪费了。

定时器的原理

使用精准的时基,通过硬件的方式,实现定时功能;定时器核心就是计数器。

STM32定时器分类

基本定时器

基本定时器:没有输入输出通道,常用作时基(定时功能)。STM32-F1基本定时器——TIM6/TIM7。

主要特性:16位递增计数器(计数值:0~65535),16位预分频器(分频系数:1~65536),可用于触发DAC,在更新事件(计数器溢出)时,会产生中断/DMA请求。

STM32定时器的技术模式及溢出条件

定时器溢出时间计算方法

Tout 是定时器溢出时间

Ft 是定时器的时钟源频率

ARR 是自动重装载寄存器的值

PSC 是预分频器寄存器的值

基础定时器中断实验的配置步骤

相关HAL库函数

关键结构体

typedef struct 
{ 
    TIM_TypeDef *Instance;         /* 外设寄存器基地址 */ 
    TIM_Base_InitTypeDef Init;     /* 定时器初始化结构体*/
     ...
}TIM_HandleTypeDef;

  
  typedef struct 
{ 
    uint32_t Prescaler;             /* 预分频系数 */ 
    uint32_t CounterMode;           /* 计数模式 */ 
    uint32_t Period;                /* 自动重载值 ARR */ 
    uint32_t ClockDivision;         /* 时钟分频因子 */ 
    uint32_t RepetitionCounter;   	/* 重复计数器寄存器的值 */ 
    uint32_t AutoReloadPreload; 	/* 自动重载预装载使能 */
} TIM_Base_InitTypeDef;

  




以上是对第七天学习的了内容做了大概的总结,由于我个人选择的是STM32F1系列的开发进行学习,所总结的大部分内容仅限于F1系列使用。

点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4