一.定时器分类

11个定时器:

定时器:

1、8      高级(7路PWM输出)

2、3、4、5  通用(4路)

6、7        基本

2个看门狗

1个sysTick

时钟分布:

二.这里我们主要对定时器中 定时时间的安排以及几路PWM的输出配置

1,时间安排

当计数器达到自动重装载寄存器值 就会发生中断。

2.TIM2_Configuration(void)

其中的这两句

/* 自动重装载寄存器周期的值(计数值)*/
TIM_TimeBaseStructure.TIM_Period=1000;

/*时钟预分频数为71+1*/
TIM_TimeBaseStructure.TIM_Prescaler= 71;

故定时器溢出时间为:

TIM_Period / Auto Reload Register(ARR) = 1000   TIM_Prescaler--71

TIM_Period = 1 / (72MHz/72)

故中断时间:1 / (72MHz/72)*1000 = 1ms

3.输出方波(输出比较)

①

TIMxCLK/CK_PSC --> TIMxCNT --> TIMx_ARR --> TIMxCNT 重新计数

            (计数寄存器)

            TIMx_CCR(电平发生跳变)

TIMxCNT = TIMx_CCR //当两个寄存器的值相等的时候电平发生跳变

TIMx_CCR:自动重装载寄存器的值:

TIM_TimeBaseStructure.TIM_Period = 999;

CK_PSC分频:

TIM_TimeBaseStructure.TIM_Prescaler = 0;

②信号周期=(TIMx_ARR +1 ) * 时钟周期

③占空比=TIMx_CCR/(TIMx_ARR +1)

TIM_OCInitStructure.TIM_Pulse = CCR1_Val;

同一个定时器,输出4路PWM波形,频率不可不同,波特率可不同;

在使用KEIL自带的仿真的时候,

Use Simulator

STM32.定时器的更多相关文章

  1. stm32定时器中断类型分析

    一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够 ...

  2. STM32 定时器用于外部脉冲计数

    STM32 定时器用于外部脉冲计数 第一步,设置GPIO GPIO_InitTypeDef GPIO_InitStructure; /* PA0,PA12-> 左右脉冲输入 */GPIO_Ini ...

  3. STM32 定时器用于外部脉冲计数(转)

    源:STM32 定时器用于外部脉冲计数 STM32 定时器(一)——定时器时间的计算 STM32的定时器是灰常NB的,也是灰常让人头晕的(当然是对于白菜来说的). STM32中的定时器有很多用法: ( ...

  4. stm32定时器输出移相PWM(非主从模式)

    背景:由于项目需要,需要stm32输出任意相角度的PWM 前提知识: 1.stm32定时器的Tim,一般有多个OC.具体差别根据型号来定. 2.定时器的使能,理论上是多个通道同时使能 3.TIM_OC ...

  5. STM32定时器时间的计算方法

    本文出自:https://wenku.baidu.com/view/e3bdfb7601f69e31433294c4.htmlSTM32定时器时间的计算方法STM32中的定时器有很多用法:(一)系统时 ...

  6. STM32定时器的预装载寄存器与影子寄存器之间的关系【转】

    首先转载:   STM32定时器的预装载寄存器与影子寄存器之间的关系 本文的说明依据STM32参考手册(RM0008)第10版:英文:http://www.st.com/stonline/produc ...

  7. 用STM32定时器测量信号频率——测频法和测周法[原创cnblogs.com/helesheng]

    工业测试与控制系统中,经常需要对未知信号的频率进行测试.对于10MHz以下的信号,用单片机(MCU)定时器完成这项任务显然是最常见和最佳的选择.目前性价比最高的单片机STM32拥有功能强大且数量众多的 ...

  8. STM32定时器学习---基本定时器

    STM32F1系列的产品,除了互联网产品外,工作8个,3种定时器,其中一种就是基本定时器.那么STM32单片机的基本定时器如何操作以及编程呢? 下面我们就来详细的了解一下 STM32F1系列的产品,除 ...

  9. stm32定时器实现60秒定时秒表

    #include "led.h" #include "delay.h" #include "key.h" #include "sy ...

  10. 关于STM32 定时器 PWM 实时调节占空比时,预装载特性

    最近在调试项目的时候遇到一个奇怪的现象:在调试状态下,给定时器捕获比较寄存器赋不同值,能产生不同占空比的波形(图1).反映到器件上也有不同的电压显示,但是在设备运行的时候,就不行了(图2). 图1 图 ...

随机推荐

  1. 怎么点击div之外的区域就隐藏这个div啊 找了很久,都没有很好解决

    方法一. <!DOCTYPE html><html><head><meta http-equiv="Content-Type" conte ...

  2. 源码解读 zsetAdd

    https://github.com/antirez/redis/blob/6a6471aad5e4f8d6cbab677b918b14cdee416296/src/t_zset.c /* Updat ...

  3. nautilus

    在~/.bashrc中定义命令别名,添加以下命令: # some more nautilus aliases alias here='nautilus . > /dev/null 2>&a ...

  4. chown 命令

    root@localhost ~]# .txt # 同时修改文件属主和属组 !chown 执行上一个chown命令

  5. Linux(CentOS)安装Mysql数据库

    1.需要mysql-linux安装包 本次使用mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz进行安装   2.将此安装包上传至linux服务器 上传路径为:/usr ...

  6. .NET Core 2.0 官方下载地址及中文教程

    开发.net core 应用需要安装.NET Core 2.0 SDK http://www.microsoft.com/net/download/core#/sdk 电脑上运行 .net core ...

  7. 如何正确的把 Java 数组 Array 转为列表 List

    最近想把 java 数组转成 List,网上普遍的答案都是 Arrays.asList: String[] a = new String[] {"hello", "wor ...

  8. [LeetCode] 438. Find All Anagrams in a String_Easy

    438. Find All Anagrams in a String DescriptionHintsSubmissionsDiscussSolution   Pick One Given a str ...

  9. Python 进制转换、位运算

    一.进制转换 编程用十进制,十进制转换为二进制.八进制.十六进制 In [135]: bin(23) Out[135]: '0b10111' In [136]: oct(23) Out[136]: ' ...

  10. Sublime text 3搭建Python-Anaconda开发环境

    网络上的教程各种各样,大同小异.自己安装时还是出了些问题,因此总结一篇博文. Sublime Text 是一款轻量级跨平台的文本编辑器,可通过包(Package)扩充自身功能. 有很多搭建python ...