因为毕业设计要用到PWM调光很久都没用到Stm32的定时器,有些内容已经遗忘,为了回顾复习相关内容今天开下通用定时器这一章节的数据手册。

1、时钟

通用定时器一般是TIM2~TIM5,TIM1、TIM8是高级定时器,TIM6、TIM7是基本定时器。

既然名字都叫定时器,时钟一定是最重要的,所以在看其相关工作模式和特性之前,先看下他的时钟。

通用定时器和基本定时器都是挂载在APB1时钟总线,这条时钟总线最大时钟频率36MHz。PCLK1经过倍频后供给通用定时器时钟,这里要注意的是,分频系数为1时TIMx_CLK=PCLK1,其他的分频系数无论多少只要不是1,TIMx_CLK=2*PCLK1。(关于这里为什么叫分频系数确是倍频作用,我猜测是因为翻译原因)。

这里注意的是,在MDK开发环境下,只要外部的晶振接的是8M,默认的系统时钟SYSCLK=72MHz,默认的PCLK1=36MHz,PCLK2=72Mhz。

所以,在配置定时器工作模式和管脚复用前,记得需先配置好时钟。(第一步)

2、定时器

接下来开始读数据手册:

定时器作为一种集成在芯片内部的外设,要把它当做一个独立的器件看待,因为是集成在内部所以供电管脚不用我们考虑,此外他具有4个独立的功能通道,可以复用到4个对应的GPIO引脚。独立的意思就是可以单独使用其中的一个。

每个通道都有四种功能,分别是:

  输入捕获:就是测量输入信号的脉冲长度。

  输出比较:

  PWM生成:有边缘和中间对齐模式。PWM的应用很广,在LED调光和PWM调速都有广泛应用,原理是通过控制占空比调节平均输出,需要结合高频率的开关器件使用。

  单脉冲模式输出:

因为毕业设计要用到PWM调光很久都没用到Stm32的定时器,有些内容已经遗忘,为了回顾复习相关内容今天开下通用定时器这一章节的数据手册。

1、时钟

通用定时器一般是TIM2~TIM5,TIM1、TIM8是高级定时器,TIM6、TIM7是基本定时器。

既然名字都叫定时器,时钟一定是最重要的,所以在看其相关工作模式和特性之前,先看下他的时钟。

通用定时器和基本定时器都是挂载在APB1时钟总线,这条时钟总线最大时钟频率36MHz。PCLK1经过倍频后供给通用定时器时钟,这里要注意的是,分频系数为1时TIMx_CLK=PCLK1,其他的分频系数无论多少只要不是1,TIMx_CLK=2*PCLK1。(关于这里为什么叫分频系数确是倍频作用,我猜测是因为翻译原因)。

这里注意的是,在MDK开发环境下,只要外部的晶振接的是8M,默认的系统时钟SYSCLK=72MHz,默认的PCLK1=36MHz,PCLK2=72Mhz。

所以,在配置定时器工作模式和管脚复用前,记得需先配置好时钟。(第一步)

2、定时器

接下来开始读数据手册:

定时器作为一种集成在芯片内部的外设,要把它当做一个独立的器件看待,因为是集成在内部所以供电管脚不用我们考虑,此外他具有4个独立的功能通道,可以复用到4个对应的GPIO引脚。独立的意思就是可以单独使用其中的一个。此外还有一个用于外部提供时钟源的时钟输入引脚ETR,一般不会用到。

每个通道都有四种功能,分别是:

  输入捕获:就是测量输入信号的脉冲长度。

  输出比较:

  PWM生成:有边缘和中间对齐模式。PWM的应用很广,在LED调光和PWM调速都有广泛应用,原理是通过控制占空比调节平均输出,需要结合高频率的开关器件使用。

  单脉冲模式输出:

时基单元由计数寄存器,预分频寄存器,自动装载寄存器组成,其中自动装载寄存器有个不可操作的对应的寄存器影子寄存器,我们不能对其读写,只能由cpu自动操作。这个自动装载寄存器就是用来保存每次更新的装载的值的,在我们想写入新的装载值时,CPU会自动写到预装载寄存器。

计数器是由预分频器的时钟CK_CNT驱动的,需要使能才有效,使能之后的一个时钟周期生效。(也就是说我们在设置预装载值时数值需要减1)

预分频器的作用就是在TIM_CLK的基础上再分频,这个寄存器也是有缓冲器的,在发生更新事件后把值写到预分频寄存器。

对于定时器这个外设,有一个叫做更新事件UEV的东东,在每次产生这个东西时,定时器所有的具有缓存功能的寄存器开始更新数值,把预装载的数写进去。这个更新事件可以由硬件产生(计数溢出计数值达到最大值),也可由软件产生,我们用指令控制EGR寄存器的UG位置高也可产生。灵活的在代码中应用这个功能,将会给编程带来极大的便利。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

分界线

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

一下子读了那么大一段还是很吃力,现在脑子很热,眼皮特别沉。还是看关键部分。

3、PWM模式

相关寄存器:TIMx_CCMRx----------------OCxM  PWM模式设置

            |---------------OCxPE  使能预装载寄存器

      TIMx_CR1-----------------APRE  使能自动重装载的预装载寄存器。

           TIMx_EGR--------------UG  在计数前设置UG位来初始化所有的寄存器

      TIMx_CCER--------------CCxP  可以设置OCx的极性(高/低电平有效)

            |-------------CCxE  控制OCx输出使能

计数器有三种计数模式分为向上/向下计数和向上向下交替计数,而PWM模式根据计数方式的不同分为两大类中央对齐模式(向上向下交替计数)以及边沿对齐模式,这两种模式是由其计数方式区分的。

而依据PWM波的产生原理,即CNT在0到ARR之间不断增加或减少期间一直与CCR进行比较,根据比较的结果输出高地电平。而比较结果对于输出的高地的影响有两种,一是CNT<=CCR时输出高电平,反之输出低电平,对应的是PWM1模式,二是CNT>=CCR时输出高电平,反之输出低电平,对应的是PWM2模式。

上面一句话解释得很清楚,PWM模式下不同PWM模式以及对齐模式的由来,对齐模式有关的寄存器是TIMx_CCR1寄存器

转载于:https://www.cnblogs.com/geekj/p/10644702.html

Stm32之通用定时器复习相关推荐

  1. 【STM32】通用定时器的PWM输出(实例:PWM输出)

    STM32F1xx官方资料: <STM32中文参考手册V10>-第14章  通用定时器 通用定时器PWM概述 STM32定时器输出通道引脚 这里以TIM3为例来讲解.STM32的通用定时器 ...

  2. 【STM32】通用定时器(TIM2到TIM5)

    00. 目录 文章目录 00. 目录 01. 通用定时器简介 02. TIM2到TIM5主要特性 03. TIM2到TIM5功能说明 04. 时钟选择 05. 寄存器 5.1 TIMx 控制寄存器 1 ...

  3. 【STM32】通用定时器TIM2-TIM5中断配置方式+继电器控制

    继电器是我们生活中常用的一种控制设备,通俗的意义上来说就是开关,在条件满足的情况下关闭或者开启.继电器的开关特性在很多控制系统尤其是离散的控制系统中得到广泛的应用.从另一个角度来说,由于为某一个用途设 ...

  4. stm32关于通用定时器的周期、频率计算公式

    以下内容针对正点原子的定时器中断实验 定时器时基单元包含: ● 计数器寄存器(TIMx_CNT) ● 预分频器寄存器 (TIMx_PSC)--该寄存器用设置对时钟进行分频,然后提供给计数器,作为计数器 ...

  5. stm32之通用定时器

    文章目录 定时器中断 定时器中断相关寄存器 定时器中断库函数 定时器中断的配置 PWM输出 PWM库函数 pwm配置步骤 输入捕获 库函数的配置 stm32f10x系列最多有8个定时器 3种定时器 1 ...

  6. STM32之通用定时器编码器模式

    1.编码器原理 如果两个信号相位差为90度,则这两个信号称为正交.由于两个信号相差90度,因此可以根据两个信号哪个先哪个后来判断方向.根据每个信号脉冲数量的多少及整个编码轮的周长就可以算出当前行走的距 ...

  7. STM32之通用定时器输入捕获模式

    #include "stm32f10x.h" /* RCC时钟配置 */ void RCC_config() {  ErrorStatus HSEStartUpStatus; /* ...

  8. STM32之通用定时器输出比较模式

     #include "stm32f10x.h" /* RCC时钟配置 */ void RCC_config() {  ErrorStatus HSEStartUpStatus; ...

  9. STM32之通用定时器计数器模式

    #include "stm32f10x.h"/* RCC时钟配置 */ void RCC_config() { ErrorStatus HSEStartUpStatus;/* RC ...

最新文章

  1. 最直接的解决服务器宕机的方法
  2. Elasticsearch-01CentOS7单节点部署ES5.6.16
  3. 一文了解H5照片上传过程
  4. IntelliJIDEA和tomcat在浏览器js乱码问题解决
  5. Ubuntu与CentOS的区别
  6. NUC1422 字母旋转游戏【水题】
  7. 20175322 周弋鸿 2018-2019-2 《Java程序设计》第八周学习总结
  8. 电网调度计算机系统目前有三种,电力系统知识问答(三)
  9. 设计模式java 模板模式_设计模式-模板模式 JAVA实现
  10. 网站性能优化的10种方法
  11. 笔记本电脑连接wifi后突然上不了网解决方法汇总
  12. 八达岭长城和龙庆峡之游
  13. portknocking(端口试探) demo
  14. 从南极到你家,易开得,一支“中国芯”的奇幻漂流
  15. SSRF(10)302跳转 Bypass
  16. Vue3推荐的替代Vuex的新一代状态管理工具:Pinia 配置教程
  17. arcmap提取dem高程_利用ArcGIS高效率提取DEM高程点至CAD
  18. pci 数据捕获和信号处理控制器_大学毕业设计一席谈之十五 扩频信号的捕获 (1)...
  19. 某些函数改为了inline方式优化。开始写CCursor类。
  20. Android WebView与JS的交互方式

热门文章

  1. php mencache扩展,【memcache缓存专题(3)】PHP-memcache扩展的安装以及使用
  2. VS code 快捷键
  3. 学会这个python数字大全,让你不再发愁
  4. 4_python基础—判断(if)语句
  5. ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用
  6. anguarjs 上传图片预览_JS控制上传图片个数,预览上传图片
  7. visual assist x_可能是最美溜背,大众探岳X能否重新定义轿跑SUV?
  8. python教程1003无标题_OSError:[WinError 10038]试图对非s的对象执行操作
  9. 安居客检测到网页抓取_python3爬虫实战-安居客写字楼信息,学会月入上万理所当然...
  10. 被字句15个_文旅部重新认定国级非遗保护单位,潮州15项花落谁家?这些非遗你都认得吗?...