赞
踩
STM32F429单片机有许多定时器Timer,主要分成三类,基本定时器;通用定时器和高级定时器。三种类型的定时器功能由少变多,高级定时器包含了低级定时器的功能。
注:图中的接口接口时钟就是总线时钟。
定时器最基本的功能就是定时,三种类型的定时器都包含定时功能,今天只讲述如何利用HAL库方法实现利用定时功能点亮LED灯。
定时功能主要有三种方式:
此处引用Z小旋的图片:
定时时间计算公式为:
arr为计数值,psc为定时器分频系数,Tclk一般设定为最大工作频率,其中psc和arr可以自己设定,tclk为定时器时钟,也就是第一个图的最后一列。
举个栗子:
以stm32f429为例,假如想利用TIM2定时500ms,TIM2位于APB2总线上,其定时器时钟为90Mhz,为了方便计算,psc一般设定为Tclk*100-1,也就是8999,这样arr的设定值为定时时间*10-1,也就是499,单位为ms。
假如使用103单片机,定时100ms,那么arr=999(1000-1),psc=7199(7200-1),tclk=72M。注意单位Tout为ms,tclk为Mhz
打开stm32Cubemx,创建新工程,芯片型号选择STM32F429IG
配置RCC为外部高速时钟(HSE)。
配置定时器TIM2,选择时钟源为内部时钟,配置计数方式,arr和psc以及是否重装载,并使能中断。
Clock Source:选择时钟源(Internal Source)
Prescaler:PSC定时器分频系数 (17999 )
Counter Mode:计数模式( UP:递增计数)
Counter Period:自动重装载值(4999)
auto-reload preload:是否开启重装载(Enable)
只需设置上述四个选项即可,其余设置和本程序无关,保持默认即可。
选择外部时钟HSE 8MHz
PLL锁相环倍频180倍
系统时钟来源选择为PLL
设置APB1分频器为 /2
这时候定时器的时钟频率为90Mhz
设置输出电平,参照自己板子的电路图,我的是低电平点亮
设置输出模式
设置上/下拉
设置输出速度
设置用户标签
其余设置保持默认
点击GENERATE CODE生成代码
HAL_TIM_Base_Start函数在stm32f4xx_hal_tim.h文件中
/* Includes ------------------------------------------------------------------*/
#include "tim.h"
/* USER CODE BEGIN 0 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if (htim == (&htim2))
HAL_GPIO_TogglePin(GPIOF, GPIO_PIN_6);
}
/* USER CODE END 0 */
大功告成
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。