赞
踩
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 自动重新加载预加载
开启中断
开启GPIO测试灯
测试中断
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); } } }
启动定时器
HAL_TIM_Base_Start_IT(&htim2);
开启串口
串口打印
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim2)
{
printf("Hello word STM32 \r\n");
}
}
结果
测试案例
https://download.csdn.net/download/hmxm6/89005379
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。