HAL库TIM定时器
文章目录
- 前言
- 一、基本定时功能
- 二、PWM功能
- 1、普通定时器PWM功能
前言
一、基本定时功能
1、工程基本设置(时钟树、RCC选择、SYS)
2、进入TIMx-Mode-Clock Source选择Internal Clock
3、定时时间计算公式
定时时间 = (Prescaler+1)× (Counter +1)/ 定时器时钟频率
例如:定时时间为 1ms,可设置Prescaler = 72-1;
Counter = 1000- 1;(TIM2时钟频率设置为72MHz)
4、使能定时器中断,生成工程
5、加入代码
(1)在hal_tim.c中找到启动定时器中断函数,加入到主函数初始化中
/* USER CODE BEGIN 2 */HAL_TIM_Base_Start_IT(&htim2);/* USER CODE END 2 */
(2)在hal_tim_ex.c中有个回调函数,复制到主函数中,并加入功能;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){if(htim->Instance == TIM2){//用户代码}
}
二、PWM功能
1、普通定时器PWM功能
1、工程基本设置(时钟树、RCC选择、SYS)
2、进入TIMx-Mode-Clock Source选择Internal Clock,选择你所使用的PWM通道
3、根据定时时间的计算公式设置你的PWM频率
例如:
定时时间为 1ms,可设置Prescaler = 72-1;
Counter = 1000 - 1;
(TIM2时钟频率设置为72MHz),则PWM频率为1KHz。
4、生成工程
5、加入你的代码
(1)初始化中加入定时器启动函数
/* USER CODE BEGIN 2 */HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);/* USER CODE END 2 */
(2)设置PWM占空比
while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1,500);}
500与设置的计数值有关,前面设置计数值为1000,则500表示占空比为50%。
HAL库TIM定时器相关推荐
- STM32F4系列HAL库配置定时器实验——输入捕获
STM32F4系列HAL库配置定时器实验--输入捕获 输入捕获简单讲解 输入捕获模式可以用来测量脉冲宽度或者测量频率.我们以测量周期和频率为例,用一个简图来说明输入捕获的原理 假定定时器工作在向上计数 ...
- hal库开启中断关中断_STM32对HAL库的定时器中断
从串口中断,到外部中断再到现在的定时器中断,越来越感觉HAL库应用比较好用,虽然一开始理解上面有点怪,但是网上查询一下就能够学会. 定时器中断分为两个重点,1.在应用CUBEMX时配置定时器的分频数以 ...
- 【STM32】HAL库 STM32CubeMX教程六----定时器中断
前言: 今天我们来学习定时器,32的定时器有着非常丰富的功能, 输入捕获/输出比较,PWM,中断等等.是我们学习STM32最频繁使用到的外设之一,所以一定要掌握好,这节我们讲解定时器中断,本系列教程将 ...
- STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数
STM32控制步进电机:基于HAL库定时器中断的闭环步进电机驱动+精准控制脉冲数 一.步进电机闭环驱动器 二.CubeMx配置 1.Clock Configuration 2.脉冲端 定时器配置 3. ...
- STM32F103C8T6基础开发教程(HAL库)—点亮第一颗LED灯
STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...
- STM32F103C8T6基础开发教程(HAL库)—开发环境配置
STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...
- STM32F103C8T6基础开发教程(HAL库)—LED灯1S周期闪烁
STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...
- 正点原子STM32(基于HAL库)3
目录 高级定时器实验 高级定时器简介 高级定时器输出指定个数PWM 实验 高级定时器输出指定个数PWM原理 TIM1/TIM8 寄存器 硬件设计 课堂源码(输出指定个数PWM灯就闪几次) 程序设计 下 ...
- STM32F103C8T6基础开发教程(HAL库)—Keil添加注释的快捷键
STM32F103C8T6基础开发教程目录 STM32F103C8T6基础开发教程(HAL库)-开发环境配置 STM32F103C8T6基础开发教程(HAL库)-Keil添加注释的快捷键 STM32F ...
最新文章
- 串口基础类库(WIN32)异步通信 _COM_H 源代码
- Jira 6.0.5的详细安装及汉化授权
- 科大星云诗社动态20210203
- 【Java NIO】一文了解NIO
- 【Uva 12093】Protecting Zonk
- AXI_05 AXI_FULL_IP的设计与验证
- Redis的几种拓展方案,你都清楚吗?
- JavaScript实现MVVM之我就是想监测一个普通对象的变化
- 遇到了火狐扩展全部丢失的问题
- 如何在github上搭建一个免费的 无限流量的静态网页博客Github pages
- 上传卡正在交付_建行实体卡、虚拟卡一起秒批,不面签不面取,有卡直提8w!...
- java连接mysql,报错Could not create connection to database server.
- Java多用户商城系统B2B2C源码-(九)服务链路追踪(Spring Cloud Sleuth)
- Mac Finder不显示侧边栏
- 运算放大器知识体系-电流检测放大器
- Flutter 热更新功能实现
- 基于PHP+MySQL的大学生求职招聘网站
- 英特尔Thunderbolt(雷电)控制器驱动
- 两分钟内教会你如何给视频加配音,快速掌握配音技巧!
- Allegro PCB Design GXL (legacy) - Merge Shapes(合并形状)