当前位置: 首页 > news >正文

【stm32f407hal库】定时器定时功能

一、相关API

1、HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:初始化TIM时基单元

2、HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:TIM时基单元赋初值
3、HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:回调函数
4、HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:回调函数
5、HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:启动定时器
6、HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:停止定时器
7、HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:启动定时器中断
8、HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:停止定时器中断
9、HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length);

        参数:TIM_HandleTypeDef结构体指针,缓冲区地址,数据长度

        功能:启动定时器DMA
10、HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);

        参数:TIM_HandleTypeDef结构体指针

        功能:停止定时器DMA

二、示例

定时时间计算:1/T=CK_PSC/[(PSC+1)*(ARR+1)]

CK_PSC:时钟频率

PSC:分频系数

ARR:自动重装载值

#include "TIM.h"
#include "LED.h"

TIM_HandleTypeDef TIM1_InitStructure;

void Timer1_Init(void)
{	
	
	TIM1_InitStructure.Instance = TIM1;
	TIM1_InitStructure.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
	TIM1_InitStructure.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;//分频因子
	TIM1_InitStructure.Init.CounterMode = TIM_COUNTERMODE_UP;//计数模式:向上计数
	TIM1_InitStructure.Init.Period = 5000 - 1;//自动重装载值ARR
	TIM1_InitStructure.Init.Prescaler = 16800 - 1;//分频系数PSC
	TIM1_InitStructure.Init.RepetitionCounter = 0;//重复计数器
	
	HAL_TIM_Base_Init(&TIM1_InitStructure);//初始化结构体
	
	HAL_TIM_Base_Start_IT(&TIM1_InitStructure);
}

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM1)
	{
		__HAL_RCC_TIM1_CLK_ENABLE();//开启TIM1的时钟
		HAL_NVIC_SetPriority(TIM1_UP_TIM10_IRQn,1,1);//设置中断优先级
		HAL_NVIC_EnableIRQ(TIM1_UP_TIM10_IRQn);//开启中断
	}
}
 
void TIM1_UP_TIM10_IRQHandler(void)
{
	 HAL_TIM_IRQHandler(&TIM1_InitStructure);
}

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
	if(htim->Instance == TIM1)
	{
		LED1_Toggle;
	}
}

相关文章:

  • web自动化-浏览器驱动下载
  • Linux Mem -- Where the mte store and check in the real hardware platform
  • html css js网页制作成品——HTML+CSS+js茉酸奶的茶网页设计(5页)附源码
  • C++基础知识(三)之结构体、共同体、枚举、引用、函数重载
  • MS08067练武场--WP
  • GBD研究——美国州级地图(附资源)
  • TDengine 客户端连接工具 taos-Cli
  • 盛铂科技 SMF106 低相位噪声贴片式频率综合器模块
  • xfeat paper笔记
  • 国自然专项项目申请:AI赋能的急性心肌梗死预警研究|基金申请·25-02-14
  • 第J2周:ResNet50V2算法实战与解析
  • 二叉树详解
  • Springboot整合ES
  • 【NLP251】命名实体识别常用模块(基于Transformer分类)
  • PyTorch 混合精度训练中的警告处理与代码适配指南
  • 部署 ollama + deepseek + open-webui 遇到的常见问题与解决建议
  • CEF132编译指南 MacOS 篇 - 获取 CEF 源码 (五)
  • SpringBoot异步调用相同类的方法
  • Cloud: aws:network: limit 含有pps这种限制
  • linux deepseek-r1模型安装
  • 商务部:中方敦促美方尽快停止232关税措施
  • 陕西榆林:全力推进榆林学院升格榆林大学
  • 外企聊营商|威能集团:公平环境增“暖”意
  • 占地57亩的“潮汕豪宅”面临强制拆除:曾被实施没收,8年间举行5次听证会
  • 汕头违建豪宅“英之园”将强拆,当地:将根据公告期内具体情况采取下一步措施
  • 经济日报:美国滥施汽车关税损人不利己