在STM32中定时器(TIM)是很重要的外设,具有相当多的作用,并且用法多样,内容多。今天来分析一下定时器的理论知识,没有实例。

在STM32中定时可以分为三类:基本定时器、通用定时器、高级定时器。

一、基本定时器

计数器定时器TIMx_CNT,只能向上计数,重载寄存器TIMx_ARR中保存的是定时器的溢出值。TIMx_CNT由时钟触发进行计数,当计数器的值等于溢出值时,产生溢出事件触发中断或DMA请求。

二、通用定时器

通用定时器的主要用来对输入脉冲的频率的测量、脉冲宽度的测量、输出PWM脉冲、还具有编码器的接口。

  1. 通用定时器的的基本计时功能与基本定时器的基本计时功能相同。
  2. PWM输出

    利用GPIO引脚进行脉冲输出,TIMx_CCR在配置比较输出时,PWM输出功能时TIMx_CCR被用作比较功能。若TIMx_CNT为向上计数,且TIMx_ARR配置为N,TIMx_CNT的值不断增加,当TIMx_CNT的值大于N时,重置TIMx_CNT的值为0,并重新计数。

    在TIMx_CNT计数时,计数值X与比较寄存器TIMx_CCR的值A进行比较。若X 小于A则输出高电平(或低电平)。相反当脉冲计数器的值X大于或者等于A时输出低电平(或高电平)。如此得到输出脉冲的周期为TIMx_ARR存储器的值(N+1)乘以触发脉冲的时钟周期,脉冲宽度则为TIMx_CCR的值A乘以触发脉冲的时钟周期,即输出的PWM的占空比为A/(N+1)。

  3. PWM输入

    此时TIMx_CCR被用作捕获功能。TIMx_CNT配置为向上计数,TIMx_ARR的值N足够大。在输入脉冲TI1的上升沿到达时,触发IC1和IC2输出捕获中断,TIMx_CNT值复位为0,TIMx_CNT自己增加,直到TI1出现下降沿触发IC2捕获事件,此时,TIMx_CRR2存储TIMx_CNT当前值。TIMx_CNt继续增加,当TI1出现第二个上升沿时,触发IC1捕获事件,TIMx_CCR1存储当前TIMx_CNT的值。

正是因为TIMx_CCR的存在,才使得通用定时器的功能如此强大。定时器的内部时钟都是TIMxCLK,但TIMxCLK的时钟来源并不是完全一样。TIM2~7基本定时器和通用定时器的时钟都是APB1预分频器的输出。TIM1和TIM8两个高级定时器的时钟是APB2预分频气的输出。

三、高级定时器

TIM1和TIM8是两个高级定时器,他们具有基本通用定时器的所有功能,还具有三相6步电机的接口、刹车功能、以及用于PWM驱动电路的死区时间的控制,非常适合电机的控制。

死区时间,在H桥、三相桥的PWM驱动电路中,上下两个桥的PWM驱动信号是互补的。即上下桥轮流导通,但实际上为了防止出现上下桥同时导通(会出现短路),在上下桥切换时,留下一段时间上下桥都施加关断信号,上下桥都关断的时间称为死区时间。

STM32----摸石头过河系列(八)相关推荐

  1. 58同城如何摸石头过河?

    本文转自:http://www.huxiu.com/article/4397/1.html 这家典型"鼠标+水泥".不愿复制Cragslist模式的创业公司,摸爬滚打间的经验教训 ...

  2. oCPC实践录 | 摸石头过河,oCPC先跑起来再说

    oCPC才开始的实践基本上是摸着石头过河,不断测试实验.不过也可以参考已有的oCPC产品设计,oCPC首要需要解决的是转化目标和转化数据. 在解决转化数据之前,可以先看一下申探社:深入互联网广告中的出 ...

  3. STM32----摸石头过河系列(一)

    在学习stm32之前,我较为熟练的掌握了51单片机的开发,可以运用51中的输入.输出,以及定时器.中断等.今天第一天,学习stm32点亮LED灯. 在本次学习中使用的是stm32f103RC系列单片机 ...

  4. STM32----摸石头过河系列(六)

    今天了解一下ADC,stm32中的模数转换利用的是逐次逼近的方法,这个当时在考研时特别熟,现在又忘了,又去问了一下万能的百度.先是多少了解一下这个转换过程,在32的开发过程中用不到,但毕竟从事这个的, ...

  5. STM32----摸石头过河系列(四)

    今天分析STM32一个相当重要的外设--串口,在我使用的这款单片机中有三个串口分别为USART1,USART2,USART3.其中USART1挂载在总线APB2上,USART2,3挂载在APB1上.这 ...

  6. 中台,都他妈被你们说糊涂了,文内才是正宗解释,别摸石头过河了,石头早就有了

    (1)我们先说说技术架构分层 我们按技术架构通常是这样的: 1.UI交互层:Windows UI.PC Web UI.移动App UI.微信小程序UI.摄像头视觉识别人机界面.语音交互人机界面 2.逻 ...

  7. STM32----摸石头过河系列(七)

    今天练习了32中的SysTick定时器,通常叫做滴答定时器.定时器的作用,用过51的想必都知道.定时器主要用来处理一些周期性的,时间间隔固定的事件.同时定时器也可以用来得到一个事件所耗费的时间.下面来 ...

  8. STM32----摸石头过河系列(五)

    今天总结一下DMA(Direct Memory Access,直接存储器存储),在以往我们从串口读取数据到内存的流程是,cpu通过串口读取导数据,然后CPU再将数据写入固定的内存.这种读取方式占用了大 ...

  9. STM32----摸石头过河系列(三)

    前两次了解了LED的打开和关闭,以及按键的检测和按键作为输入的中断.今天来了解一下SysTick系统定时器.玩过51的想必对定时器一定不会陌生.定时器可以让我们隔着固定的时间的去做一些事情,比如让LE ...

最新文章

  1. 2019全球AI 100强,中国占独角兽半壁江山,但忧患暗存
  2. 【小白学习C++ 教程】十二、C++面向对象编程中的构造函数和析构函数
  3. html viewer.app,HTML Viewer studio classroom
  4. boost::hana::test::TestLogical用法的测试程序
  5. 使用自定义DelegatingHandler编写更整洁的Typed HttpClient
  6. 信息学奥赛一本通(1052:计算邮资)
  7. freecodecamp能学php吗,freeCodeCamp 学习记录——初级算法「01」翻转字符串
  8. DSP编程的一些优化技巧和注意事项
  9. 【Elasticsearch】es 提高 搜索速度
  10. red hat linux 虚拟机,Red Hat linux 的安装详细流程(包括VM虚拟机的设置)
  11. Activiti 流程实例、任务、执行对象及相关的表
  12. Spring教程笔记8 基于SHH的员工信息管理系统
  13. 手电筒安卓_王思聪吃热狗数字时钟app安卓android苹果ios
  14. 微信 JSAPI 支付流程
  15. thinkphp 后台管理框架swiftadmin的使用
  16. (转)Notepad++删除空白行
  17. python程序员工资高吗?
  18. ribbon的注解 @LoadBalanced 报错 No instances available for [IP]
  19. 【牛客网-公司真题-前端入门篇】——2021牛客模考-卷1
  20. addobe dwcs6静态表格

热门文章

  1. 上传图片在浏览器可以正常查看 在手机不显示_自己拥有一台服务器可以做哪些很酷的事情...
  2. 【操作系统】请求调页
  3. 【Python】Pandas在数据库中执行SQL语句并加载结果
  4. 【Python】Matplotlib绘制各式各样的圆形
  5. 【Python】Matplotlib绘图中文乱码问题的解决方案
  6. Oracle 表空间错误集锦
  7. Python中eval与exec的使用及区别
  8. centos7无GUI情况安装Xvfb、selenium、chrome
  9. ant design form表单的时间处理
  10. oracle查询中over(partition by ...order by ...)用法