STM32之定时器

目录

1、定时器介绍

1.定时器工作原理

2.定时器的分类

3.通用定时器主要功能介绍

4.定时器计数模式

5.定时器时钟源

6.定时器溢出时间计算公式

2、定时器中断的实验

codeMX的配置

代码编写

1.使用到的HAL库函数

1.中断回调函数需要我们重写

[2. 在中断模式下启动TIM Base生成(在中断模式下启动定时器)](#2. 在中断模式下启动TIM Base生成(在中断模式下启动定时器))

2.具体代码

1、定时器介绍

在51单片机的时候我们经常使用软件定时,但是软件定时存在不精确、占用CPU资源(在计时期间CPU都在数数)等缺点,在stm32我们就是用硬件定时可以避免软件定时的那些缺点。

1.定时器工作原理

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

2.定时器的分类

  • 基本定时器(TIM6~TIM7)
  • 通用定时器(TIM2~TIM5)
  • 高级定时器(TIM1和TIM8)

我们常用到的是通用定时器

我使用的单片机定时器资源(可以在单片机使用手册上查看)

3.通用定时器主要功能介绍

1 ) 16 位向上、向下、向上 / 向下自动装载计数器( TIMx_CNT )。
2 ) 16 位可编程 ( 可以实时修改 ) 预分频器 ( TIMx_PSC ) ,计数器时钟频率的分频系数为 1 ~ 65535 之间的任意数
值。
3 ) 4 个独立通道( TIMx_CH1~4 ),这些通道可以用来作为:
A .输入捕获
B .输出比较
C . P WM 生成(边缘或中间对齐模式)
D.单脉冲模式输出
4)可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用 1 个定时器控制另外一个定时器)的同步电路。
5)如下事件发生时产生中断/DMA:
A.更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)
B.触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)
C.输入捕获
D.输出比较
E.支持针对定位的增量(正交)编码器和霍尔传感器电路
F.触发输入作为外部时钟或者按周期的电流管理

4.定时器计数模式

5.定时器时钟源

6.定时器溢出时间计算公式

  • PSC:预分频器的值
  • ARR:自动重装载值
  • Tclk:时钟频率
  • Tout:设定的时间
  • 1Mhz=1000000hz(次/秒)
  • 周期(s)=频率(hz)的倒数

2、定时器中断的实验

需求:使用定时器中断方法,没500ms翻转一次LED等的状态

codeMX的配置

代码编写

1.使用到的HAL库函数
1.中断回调函数需要我们重写

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)

参数:定时器的句柄

2. 在中断模式下启动TIM Base生成(在中断模式下启动定时器)

HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)

参数:定时器的句柄

返回的是一个状态值

2.具体代码
复制代码
//重写中断回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM2)//确定中断源,确定是谁产生的中断
	{
		HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);
	}
}
main函数里面
	HAL_TIM_Base_Start_IT(&htim2);//在中断模式下启动定时器

3、定时器的其它应用

STM32之定时器--PWM控制SG90舵机

STM32之定时器--超声波测距

相关推荐
艾芯微科技12 小时前
HR911130C|汉仁 HANRUN 集成变压器千兆 RJ45 网口参数、电路、PCB 布线、替代与采购避坑
网络·单片机·嵌入式硬件·集成测试·51单片机
白搞电子13 小时前
ESP-Mosaico 黑胶轮滑动画与音乐编排:从设备原型到电脑预览工作台
单片机·嵌入式硬件
新晨单片机设计13 小时前
S028C-基于STM32单片机WIFI智能电表(温度)【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·wifi智能电表
1234567890@world14 小时前
正点原子 ATK-DLRK3568 嵌入式Linux系统开发手册V1.3 详细总结
linux·stm32·单片机
女神下凡16 小时前
芯参谋(68):ADC模数转换器电路设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范
Zwawa17 小时前
一盏 LED 不够用了:让同一盏灯说出不同的话
c语言·单片机·嵌入式
芯岭技术郦17 小时前
入门级 32 位 MCU,PY32F002B
单片机·嵌入式硬件
三佛科技-1341638421217 小时前
景观雾化器方案开发,鱼缸/假山造雾器方案开发(主控FT61F021封装SOP16)
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
架构师伯子明17 小时前
socket通信
单片机·嵌入式硬件
创界工坊工作室18 小时前
46-基于AT89C51脉冲式电表数据采集器设计
stm32·单片机·嵌入式硬件·51单片机·proteus