stm32的定时器功能非常强大,包括基本定时器,通用定时器以及高级定时器。 本例介绍定时器的基本应用,通过定时器中断控制LED闪烁,间隔1s.

STM32CubeMX系列GPIO

这一例我们在前一例GPIO的工程修改。复制GPIO的工程,修改文件夹名。点击

打开STM32cubeMX的工程文件重新配置。开启定时器TIM3,选择内部时钟。

定时器相关理论点击下方链接访问

STM32F103ZE基本定时器笔记

启用TIM3,选择内部时钟源(Internal Clock)。

要确定定时的时间我们必须先确定CK_PSC的频率,TIM3配置中选择内部时钟作为时钟源,查看数据手册或者查看代码可以知道TIM3是挂接到APB1时钟线上

内部时钟设置为不分频(CKD),则CK_PSC的时钟频率等于APB1的时钟频率72MHz,即72000 000Hz。

若要定时时间为1s,则即可设置7200分频(预分频器寄存器 (TIMx_PSC)的值为7200-1),定时器的时钟CK_CNT的频率为10000Hz.则自动重载寄存器 (TIMx_ARR)设置为10000-1即定时为1s.auto-reload preload(自动重装预加载),设置为Enable(开启)。

TRGO为触发输出,可以触发内部ADC/DAC,这里我们没有用到这个功能,参数为默认设置。

NVIC Settings框勾选开启定时器中断。优先级为默认。或者在NVIC配置中使能TIM3中断。

生成报告,以及生成代码,编译程序。
打开main.c文件。把main()函数里while循环上一章的代码删掉,while循环里面为空。在main.c文件后面USER CODE BEGIN 4 USER CODE END 4 中间添加中断回调函数。
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{if (htim->Instance == htim3.Instance)//判断是否为定时器3触发的中断{HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);//PB5LED电平翻转}
}

在main.c文件中while(1)循环前面必须添加代码启动基本定时器中断模式计数。如无添加,会导致定时器无法工作

HAL_TIM_Base_Start_IT(&htim3);//开启定时器3中断模式计时

重新编译程序,编译通过后下载到开发板。按复位可以肯定PB5间隔1s闪烁一次

    现在我们再次分析一下程序。工程中配置TIM3定时器选择内部时钟不分频作为时钟源,挂载到APB1时钟总线上(72MHz),设置为递增计数模式预分频器设置为7200-1,即7200分频,最后定时器的频率为10000HZ。一个脉冲的时间为1/10000s。则若要定时1s,则自动重载寄存器设置为10000-1(如要定时0.2s,则自动重装寄存器设置为0.2/(1/10000)-1.即2000-1)。
    在main()函数中调用HAL_TIM_Base_Start_IT(&htim3)开启定时器,定时器从0开始计数,当计数到10000-1,即9999时,产出上溢出事件,计数器又从0开始继续计数。由于我们开启了定时器中断,所以发生上溢出事件时会触发定时器中断程序会转跳到中断服务函数中运行。我们在中断服务函数中翻转LED的电平。下次定时器再次溢出触发中断继续翻转LED的电平。所以我们会看到LED不断闪烁。

STM32CubeMX系列TIM相关推荐

  1. STM32CubeMX系列教程8:配置工程模板(串口+不定长数据收发+DMA+IDLE中断+软中断)

    文章目录 摘要 生成工程 配置外设 1.配置时钟与Debug 2.配置串口与DMA 3.配置定时器与中断 配置时钟树 配置工程设置 点击`GENERATE CODE`生成工程 修改源码 配置软中断 配 ...

  2. STM32CubeMX系列教程04_STM32CubeMX各窗口界面描述

    说明: 本文原创作者『strongerHuang』 首发于微信公众号『嵌入式专栏』,同时也更新在我的个人网站:EmbeddedDevelop 标签:STM32. STM32CubeMX. LL库. H ...

  3. 转发微雪课堂的STM32CubeMX系列教程

    找到一份比较详细的STM32cubemx系列的教程,特转发踩点. https://www.waveshare.net/study/portal.php?mod=view&aid=629

  4. STM32CubeMX系列教程 5.0版本环境开发——1.工程搭建

    STM32Cubemx 是一个便捷,方便管理的软件平台.极大的优化了开发的过程,尽管很多人对此不适应.它包括了ST产品的每个系列除了STM8.平台包括了STM32Cube 硬件抽象层(一个STM32抽 ...

  5. 四年嵌入式技术沉淀,处女作《STM32CubeMX系列实战教程》诞生

    上百篇原创人工智能系列教程,从理论到实战,手把手带你掌握人工智能,点击☞这里☜进入传送门~ 秒变 STM32 大神,STM32CubeMX你值得拥有! 本教程共包含 20 篇文章,手把手带你学会用 S ...

  6. STM32CubeMX系列|红外遥控

    红外遥控 1. 红外遥控简介 红外遥控是一种无线.非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中 ...

  7. STM32CubeMX系列|DHT11温湿度传感器

    DHT11温湿度传感器 1. DHT11简介 DHT11是一款温湿度一体化的数字传感器,该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机连接.通过单片机微处理器简单的电路连 ...

  8. 【STM32】 HAL库+STM32CubeMX 系列教学

    HAL库简介 STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层. HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便 ...

  9. STM32CubeMX系列08——SPI通信(W25Q64、NRF24L01无线模块)

    文章目录 1. 准备工作 1.1. 所用硬件 1.2. SPI 简介 1.3. 生成工程 1.3.1. 创建工程选择主控 1.3.2. 系统配置 1.3.3. 配置工程目录 2. 读写EEPROM实验 ...

  10. STM32CubeMX系列|ADC模数转换

    ADC模数转换 1. ADC简介 ADC(analog to digital converter)即模数转换器,它可以将模拟量信号转换为数字信号,按照转换原理主要分为逐次逼近型.双积分型.电压频率转换 ...

最新文章

  1. HDU2025 查找最大元素
  2. 导入数据任务(id:373985)异常, 错误信息:解析导入文件错误,请检查导入文件内容,仅支持导入json格式数据及excel文件
  3. 生活中的化学物质 —— 化学盐
  4. 与通用计算机相比 单片机具体有哪些特点,嵌入式系统-复习大纲_彭荣
  5. 六年级上学期计算机上册教案,六年级上册数学全册教案
  6. DOM BOM document window 区别
  7. eclipse不能添加tomcat7的问题
  8. Cadence OrCad Allegro SPB 16.6 下载及安装破解指南
  9. switchhost提示没有切换权
  10. 16位CRC校验算法
  11. c语言 二维数组指针
  12. simulink enable嵌套问题
  13. java 倒计时_Java倒计时实现的三种简单方式
  14. 国家密码管理局公告——密码行业标准更新26项
  15. 给出一个正整数,求出它是几位数,逆序输出各位数字,顺序输出各位数字。
  16. 我不是学计算机专业的,想转行做程序员,怎么办?
  17. 每日算法智力题(杀狗问题)
  18. sshfs rm: cannot rm ‘mybucket’: Transport endpoint is not connected
  19. Can not perform this action after onSaveInstanceState和重建Activity时恢复缓存的Fragmen的问题
  20. 目标检测算法之YOLO

热门文章

  1. Axure中级教程:管理后台内容模板(中继器全交互详解)
  2. Java实现静态代理
  3. linux基础:快速搭建平台
  4. 工作日节假日调休日休息日的判断API-holiday
  5. 易辅客栈-第16套从零学手游脚本实战
  6. 系统集成项目管理之何为系统集成
  7. python算法编程书籍推荐_推荐一本编程算法书籍,你推荐哪本?
  8. spacedesk安卓_【图吧小白教程】安卓平板改数位板
  9. QT常用控件——QListView控件
  10. 酷狗.kgtemp文件加密算法逆向