文章目录

  • 定时器中断
    • 定时器中断相关寄存器
    • 定时器中断库函数
    • 定时器中断的配置
  • PWM输出
    • PWM库函数
    • pwm配置步骤
  • 输入捕获
    • 库函数的配置

stm32f10x系列最多有8个定时器

3种定时器
1.高级定时器
2.基本定时器
3.通用定时器




定时器中断

时钟选择
计数器时钟可以由下列时钟源提供:
1.内部时钟(CK_INT)(默认)
2.外部时钟模式1:外部输入脚 (TIx)
3.外部时钟模式2:外部触发输入(ETR)
4.内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器



定时器中断相关寄存器

1.计数器当前值寄存器CNT

2.预分频寄存器PSC

3.自动重装载寄存器ARR

4.控制寄存器1 CR1

5.DMA中断使能寄存器DIER

定时器中断库函数

1.定时器初始化函数
void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);


预分频系数
计数模式
自动装载值


2.定时器使能函数
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState);

3.定时器中断使能函数
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);


4.状态标志位的获取和清除
FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);

定时器中断的配置

1.使能定时器时钟
2.初始化定时器
3.开启定时器中断,配置中断
4.使能定时器
5.编写中断服务函数

溢出时间计算

延时500ms
ARR设置为4999,PSC设置为7199,TCLK是时钟周期

PWM输出


PWM原理
就是设置一个阈值,当大于阈值时输出高电平,低于阈值输出低电平

PWM库函数

1.初始化函数


2.设置比较值函数

3.使能输出比较预装载

4.使能自动重装载的预装载寄存器允许位

pwm配置步骤

注:如果是普通定时器,不需要加上

对于TIM1和TIM8高级定时器则需要加上

输入捕获

工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存到对应的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕获

步骤1:设置输入捕获滤波器
步骤2:设置输入捕获极性
步骤3:设置输入捕获映射通道
步骤4:设置输入捕获分频器
步骤5:捕获到有效信号开启中断
最后看看定时器对应引脚

库函数的配置

1.输入捕获通道初始化函数


捕获通道
捕获极性
映射关系
分频系数
滤波器

2.通道极性设置独立函数

3.获取通道捕获值

输入捕获配置步骤

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之通用定时器复习

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

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

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

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

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

  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. ASP.Net TextBox控件只允许输入数字
  2. JavaScript字符串的单引号和双引号问题
  3. QT5.14 VS2019
  4. 华为错误报告在哪个文件夹_华为手机隐藏的这7个秘密小技能,现在开启,手机还能再用3年...
  5. 【个人网盘-updog】使用updog建立个人网盘,so easy
  6. python怎么输入一个数字并调用_Python求输入一个整数,然后输出这个整数的所有数字:个位数字在前,高位数字在后,中间使用空格字符连接...
  7. hadoop应用开发技术..._Hadoop
  8. Javascript第四章匿名函数第七课
  9. Camshift算法(1)
  10. CentOS 6.2安装配置LAMP服务器(Apache+PHP5+MySQL)
  11. 使用 WebView2 封装一个生成 PDF 的 WPF 控件
  12. 本地 Git 文件夹显示绿色标识
  13. 支付宝支付接口的调用
  14. acml会议级别_人工智能领域的顶级学术会议大全(二)
  15. sqlserver dba
  16. 服务器 响应400,加载资源失败:服务器响应的状态为400:spring mvc
  17. matlab中Rip是什么意思,rip什么意思(rip是指安息的意思吗?)
  18. ov5645 mipi 驱动
  19. python求向量与x轴的夹角_如何计算直线与水平轴的夹角?
  20. 【Python】银行家算法(四舍六入五成双)和使用decimal进行四舍五入处理

热门文章

  1. 豪华版飞机大战系列(六)--附源代码
  2. 【原创】有关Silverlight中“DataGrid中级联动态绑定父/子ComboBox ”的示例。
  3. css技巧之如何实现ul li边框重合
  4. PAT C++常用函数(持续更新)
  5. es6 依赖循环_探索 JavaScript 中的依赖管理及循环依赖
  6. python什么时候用框架_python爬虫-什么时候选择selenium框架框架?
  7. spring框架中JDK和CGLIB动态代理区别
  8. 系统相关的信息模块: import sys
  9. 在Linux系统里安装Virtual Box的详细步骤
  10. springboot + profile(不同环境读取不同配置)