【HM】STM32F407 HAL库 定时器

基本概念
兆赫兹

1MHZ(兆赫兹)是频率的单位,表示每秒周期性震动1,000,000次。

预分频器

不分频

2分频,两个脉冲输出一次

三分频

自动重装载寄存器

当计时器里的计数器=自动重装载寄存器值,计数器清零

定时器分类
种类 位数 计数器模式 产生DMA请求 捕获/比较通道 互补输出 特殊应用场景
高级定时器(TIM1,TIM8) 16 向上,向下,向上/向下 可以 4 带死区控制盒紧急刹车,可应用于PWM电机控制
通用定时器(TIM2~TIM5) 16 向上,向下,向上/向下 可以 4 通用。定时计数,PWM输出,输入捕获,输出比较
基本定时器(TIM6,TIM7) 16 向上,向下,向上/向下 可以 0 主要应用于驱动DAC

通用和基本时钟源:APB1

高级定时器时钟源:APB2

定时器配置

时钟源:内部时钟

假如记录1秒

1秒=自动重装载寄存器 / 输入HZ

1秒=自动重装载寄存器 / (时钟源 / 预分频器)

1秒 = 10000 / (72000000 / 7200)

1秒 = 10000 / (84000000 / 8400)

配置

Prescaler (PSC - 16 bits value) 预分频器

Counter Period 自动重装载寄存器

auto-reload preload 自动重新加载预加载

开启中断

LED测试代码

开启GPIO测试灯

测试中断

c 复制代码
int index = 0;

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim == &htim2)
	{
		if(index == 1)
		{
			index = 0;
			HAL_GPIO_WritePin(GPIOF, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8, GPIO_PIN_SET);
		}else{
			index = 1;
			HAL_GPIO_WritePin(GPIOF, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8, GPIO_PIN_RESET);
		}
	}
}

启动定时器

c 复制代码
HAL_TIM_Base_Start_IT(&htim2);
串口测试代码

开启串口

串口打印

c 复制代码
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim == &htim2)
	{
		printf("Hello word STM32 \r\n");
	}
}

结果

测试案例

https://download.csdn.net/download/hmxm6/89005379

相关推荐
沐欣工作室_lvyiyi1 小时前
基于单片机的智能浴室(论文+源码)
stm32·单片机·嵌入式硬件·智能浴室
二本咕咕-机械转码1 小时前
STM32是怎么跑起来的?启动流程 + 时钟树一次讲透(面试高频)
stm32·嵌入式硬件·面试
撩妹小狗1 小时前
揭秘舵机精准控制的PWM奥秘
单片机·嵌入式硬件
Heartache boy1 小时前
野火STM32_HAL库版课程笔记-TIM通道输出应用之PWM实现呼吸灯
笔记·stm32·单片机·嵌入式硬件
桌面运维家1 小时前
解决Windows 10打印机脱机:端口、驱动、网络故障排除
windows·stm32·单片机
liwulin05062 小时前
【ROS2】【ESP32S3纯透传方案】ESP32S3+WINDOWS+VMware+ROS2+YDLIDA X导航完整落地方案
windows·stm32·单片机
ACP广源盛139246256732 小时前
IX8024@ACP#重构新一代 AI 算力产品的高速扩展架构
网络·人工智能·嵌入式硬件·计算机外设·电脑
天选硬件打工人3 小时前
第二十三篇:【硬件工程师筑基系列 5-2】PCB 设计核心基础 | 叠层设计、焊盘封装与 DFM 可制造性规范
单片机·嵌入式硬件·硬件架构·硬件工程·制造·基带工程
廷华电子4 小时前
STM32H743+AX58100学习板
stm32·嵌入式硬件·电机控制·ethercat·cia402
busideyang4 小时前
函数指针类型定义笔记
c语言·笔记·stm32·单片机·算法·嵌入式