×

STM32实现定时器的例程和资料分析

消耗积分:5 | 格式:doc | 大小:0.36 MB | 2020-12-07

fix2020

分享资料个

  在STM32F10xxx系列的32位MCU上,定时器资源十分丰富,包括高级控制定时器,通用定时器和基本定时器。此外,还有能够实现定时功能的系统滴答定时器,实时时钟以及看门狗。关于这些定时器的介绍,占据了STM32F10xxx参考手册1/5的篇幅,可见其功能的强大。

  在低容量和中容量的STM32F103xx产品,以及互联型产品STM32F105xx和STM32F107xx中,只有一个高级控制定时器TIM1。而在高容量和超大容量的STM32F103xx产品中,有两个高级控制定时器TIM1和TIM8。

  在所有STM32F10xxx系列产品中,都有通用定时器TIM2~TIM5,除非另有说明。除此之外,在超大容量产品中,还有通用定时器TIM9~TIM14。

  在高容量和超大容量的STM32F101xx和STM32F103xx产品,以及互联型产品STM32F105xx和STM32F107xx中,有两个基本定时器TIM6和TIM7。

  其中,高级控制定时器的功能最为强大,可以实现所有其他定时器的所有功能。TrailBreaker开发板使用的是高容量的STM32F103ZE,因此有两个高级控制定时器TIM1和TIM8。下面我们就着重介绍这两个高级控制定时器。

 

  TIM1和TIM8简介

  高级控制定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱动。 它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)。 使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。

  关于实验中用到的LED部分原理图和GPIO跑马灯实验所用到的相同,在此不再多做介绍。

  TIM1和TIM8定时器的功能包括:

  16位向上、向下、向上/下自动装载计数器

  16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值

  多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出

  死区时间可编程的互补输出

  使用外部信号控制定时器和定时器互联的同步电路

  允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器

  刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态

  如下事件发生时产生中断/DMA:

  ─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)

  ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

  ─ 输入捕获

  ─ 输出比较

  ─ 刹车信号输入

  支持针对定位的增量(正交)编码器和霍尔传感器电路

  触发输入作为外部时钟或者按周期的电流管理

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !