hal库开启中断关中断_HAL库 TIM计数器及中断开启过程

本文详细介绍了如何使用HAL库初始化TIM基本计数器参数,并着重讲解了HAL_TIM_Base_Init()、HAL_TIM_Base_MspInit()函数以及中断的开启和清除,强调了在正确位置使能中断和清理中断标志的重要性,最后提到了计数中断处理函数HAL_TIM_PeriodElapsedCallback()的实现和调试。
摘要由CSDN通过智能技术生成

1、初始化TIM基本计数器参数

void MX_TIM2_Init(void)

{

TIM_ClockConfigTypeDef sClockSourceConfig= {0};

TIM_MasterConfigTypeDef sMasterConfig= {0};

htim2.Instance=TIM2;

htim2.Init.Prescaler= 36000-1;

htim2.Init.CounterMode=TIM_COUNTERMODE_UP;

htim2.Init.Period= 2000-1;

htim2.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;

htim2.Init.AutoReloadPreload=TIM_AUTORELOAD_PRELOAD_DISABLE;if (HAL_TIM_Base_Init(&htim2) !=HAL_OK)

{

Error_Handler();

}

sClockSourceConfig.ClockSource=TIM_CLOCKSOURCE_INTERNAL;if (HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig) !=HAL_OK)

{

Error_Handler();

}

sMasterConfig.MasterOutputTrigger=TIM_TRGO_RESET;

sMasterConfig.MasterSlaveMode=TIM_MASTERSLAVEMODE_DISABLE;if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) !=HAL_OK)

{

Error_Handler();

}

}

2、HAL_TIM_Base_Init(&htim2)应用参数基本参数配置

HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)

{/*Check the TIM handle allocation*/

if (htim ==NULL)

{returnHAL_ERROR;

}/*Check the parameters*/assert_param(IS_TIM_INSTANCE(htim->Instance));

assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));

assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));

assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));if (htim->State ==HAL_TIM_STATE_RESET)

{/*Allocate

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是DS小龙哥编写的(STC)51单片机开发手册,适合51单片机入门初学者,大学生等当做工具书使用。实验的平台采用的是普中科技单片机平台,文章中的知识点详细,代码清晰,注释清楚,可以复制粘贴,配套代码详细。目前写了4个大章节,后续会持续更新,更新后重新下载即可。 每个例子的完整的工程源码在PDF里有百度云盘的下载链接。失效了可以私信发送。 目前PDF里包含的目录如下: 51单片机开发手册 1 一、 单片机开发入门知识介绍 1 1.1 51单片机介绍 1 1.2 市场上的主流单片机种类 1 1.3 FPGA与单片机区别 2 1.4 DSP和单片机区别 3 二、搭建开发环境 4 2.1 STC单片机命名介绍 4 2.2 安装keil软件 4 2.3 新建工程 5 2.4 下载程序 8 2.5 使用辅助工具计算延时时间 12 2.6 STC90C51系列单片机引脚图 13 三、 基础入门学习 14 3.1 LED灯模块 14 3.2 蜂鸣器模块 17 3.5 独立按键 18 3.6 矩阵键盘 22 3.7 独立数码管(静态数码管) 26 3.8 动态数码管 29 3.9 LED 16*16点阵 33 3.10 采用38译码器驱动8位数码管 48 四、单片机提高篇 53 4.1 定时器 53 4.2 中断 60 4.3 串口通信 71 4.4 NEC红外线遥控器解码 80 4.5 DS18B20温度传感器 87 4.6 EEPROM存储芯片(AT24C02) 96 4.7 DS1302 实时时钟芯片 107 4.8 PCF8591(ADC/DAC)转换芯片 119 4.9 (HC-SR04)超声波测距模块 130 4.10 使用计数器测量NE555脉冲频率 134 4.11 LCD1602显示屏 139 四、 单片机项目篇 146 5.1 16x16点阵滚动显示 146
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值