前言
利用HAL库开发实现功能:使用TIM2实现定时,每隔1秒实现双闪功能
一、基础知识
1、常见的定时器资源
1.系统滴答定时器 SysTick
集成在Cortex M3内核的定时器,主要目的是给RTOS提供时钟节拍做时间基准。比如HAL库函数中的HAL_Delay()就是基于这个定时器开发的。如果要做嵌入式Linux的相关项目,要和上位机进行通讯的话,这个函数就不能用了。
2.看门狗定时器 WatchDog
3.实时时钟 RTC
4.基本定时器 TIM6、TIM7
5.通用定时器 TIM2、TIM3、TIM4、TIM5
在基本定时器的基础上,实现输出比较、输入捕获、PWM生成、单脉冲模式输出等功能。这类定时器最具代表性,使用也最为广泛
6.高级定时器 TIM1、TIM8
首先,定时器中断频率的设置只需要关注:1)定时器输入时钟的频率;2)预分频值*(Prescaler);3)自动重装值(Counter Period)*
公式:
提示:1M=10的6次方 即:1M=1000000
例:
二、CubeMx硬件配置
1、硬件配置步骤:
1.设置Clock Source时钟源
2.根据需求设置参数Prescaler和Counter Period
3.配置NVIC嵌套向量中断控制器
4.用户重写定时器溢出回调函数,实现具体的中断逻辑
2、CubeMx硬件配置
3、定时器配置
由于我们需要使用TIM2定时,所以我们在Timers模块下找到TIM2
【第一步】
设置Clock Source时钟源为Internal Clock(内部时钟),如上图所示
我们的需求定时器频率为32MHz,间隔1秒(1000ms)翻转电平
所以根据定时器发生中断时间计算方法
【第二步】
计算方法看上文
设置参数Prescaler为芯片时钟评率减1(从0开始)
设置参数Counter Period为999,如上图所示(从0开始)
【第三步】
配置NVIC嵌套向量中断控制器,勾选使能TIM2中断
三、proteus仿真电路搭建
四、代码编写
1、定时器时间间隔参数
2、虚函数寻找及函数重写
stm32f1xx.it.c文件中找我们的定时器TIM2回调函数然后右键Go To Definition Of
找到时间定时函数HAL_TIM_PeriodElapsedCallback(htim)
然后再次右键Go To Definition Of,找到我们要的虚函数
将函数复制到main.c文件中,在Private User Code区域重写代码
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == TIM2)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_7|GPIO_PIN_8);
}
}
3、开启定时器
打开stm32f1xx_hal_tim.c文件,找到函数HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
复制,调用,参数设置为&htim2即可
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim2);
/* USER CODE END 2 */
五、仿真测试
1、配置芯片晶振频率与CubeMx一致
LED不停的闪烁
上一篇:STM32学习:串口通讯
下一篇:STM32学习:按键控制LED
推荐阅读最新更新时间:2024-11-17 01:47
设计资源 培训 开发板 精华推荐
- OP484FSZ-REEL7 高端负载电流监控器的典型应用
- AM6TW-2403DH35Z ±3.3V 6 瓦单输出 DC-DC 转换器的典型应用
- 使用 ROHM Semiconductor 的 BU4326 的参考设计
- 使用 Broadcom Inc 的 HCPL-7851#100 的参考设计
- 具有可调软启动功能的 LT1506IS8 降压转换器的典型应用电路
- AM2G-2403SH30Z 3.3V 2瓦DC-DC转换器的典型应用
- 爱墓式264号-照明风扇快充一体电源包
- 具有短路保护功能的 MC78M09CTG 9V 电流提升的典型应用
- DC324A,基于 LTC1876EG 的演示板 高效、低成本 3 输出电源,7.5 至 24Vin,输出 = 3.3V/5A、5V/5A、12V/0.2A
- 使用 LT1054CN8 正倍频器的典型应用
- Teledyne e2v LS1046 空间处理器成功通过100krad TID测试
- UiPath新一代自动化平台,简单而强大,打造全面自动化企业
- 扩大广泛产品线,2020年前三季度Digi-Key新增70多家核心供应商
- TT Electronics 推出金属箔贴片电阻器,具有更好的耐浪涌特性
- 揭秘性能爆表的AMD Zen3,采用chiplet设计,总面积83.74平方毫米
- 如何透过技术联盟与专利组合攻略汽车芯片市场
- 贸泽开售TE Connectivity DT-XT密封连接器系统适用于要求严苛的商用汽车
- 新的固态电池材料来自于树木 降低了起火风险
- 瑞萨电子创新汽车电子芯片助力丰田雷克萨斯下一代多媒体系统
- 瑞萨电子创新汽车电子芯片助力丰田雷克萨斯下一代多媒体