从零开始一起学stm32(八)---通用定时器

1.基本定时器的回顾:

    1.1基准时钟:计数器+分频器+重装载器

    计数器:累加计数

    分频器:得到你想要的时钟脉冲

    重装载器:装载计数器的最大值;

    1.2时钟:TIM6_CLK时钟---72MHz

    1.3TIM6定时原理:

    分频得到计数时钟,让计数器累加,到最大值产生溢出事件,进而产生更新事件,如果使能中断,就会产生更新中断!

    计数时钟*重装载值==定时时间!

    更新事件 :所有寄存器都会被更新!

    72000000/7200==10k

    配置步骤:

  1. 打开时钟--TIM6_CLK
  2. 设置分频值和重装载值
  3. 配置中断---NVIC
  4. 使能更新中断
  5. 使能计数器---CEN!
  6. 编写中断服务函数!

 

2.通用定时器

占空比:高电平所占用时间周期的比例!

 

配置为输出模式---CC1S位---置1;

选择输出模式:PWM1 或者是PWM2

选择输出模式,例如当计数器CNT与CCRx匹配时翻转OCx的输出引脚, CCRx预装载未用,开启OCx输出且高电平有效,

则必须设置OCxM=PWM1、 OCxPE=1--开启影子功能!

CCxP=配置有效电平的极性

CCxE=使能通道--能够输出信号!

 

 

 

 

查看原理图--使用的是TIM3_CH1---PA6;

 1.打开时钟---A端口时钟,TIM3_CLK

     复用功能---作为GPIO口的第二功能---只需打开对应的外设时钟!

 2.配置GPIO口—配置为TIM3_CH1

 3.基本定时器的功能---设置PSC、计数模式、ARR

4.输出通道的配置---

          1.比较捕获寄存器---设置比较值

//2. 配置为输出模式---CC1S位---00;

2. 选择输出模式:PWM1 或者是PWM2

// 必须设置OCxM=PWM1

 OCxPE=1--开启影子功能!

3.CCxP=配置有效电平的极性

4.CCxE=使能通道--能够输出信号!

5.通道—1 2 3 4

  1. 配置中断
  2. 使能更新中断
  3. 使能定时器
  4. 编写中断服务函数

 

应用:

判断是否产生更新中断;

清中断标志;

设置CCR1寄存器值;---改变!

 

1.实现占空比确定的脉冲

2.呼吸灯

 

1.基本定时器的功能!

2.计数器模式选择

3.捕获/比较寄存器的工作原理

4.OC1REF设置

5.输出控制

6.OC1通道配置

7.目的:通过更新中断改变捕获/比较寄存器数值,从而产生不同的PWM波,实现呼吸灯效果!

 

 

选择TIM3_CH1--PA6

 

1.查看原理图:打开A端口时钟、TIM3时钟

2.配置GPIO口的复用功能!

3.配置实现基本定时器功能!

4.设置通道

    1.输出

    2.OC1REF设置

    3.设置比较捕获寄存器数值

    4.使能输出通道

5.中断配置

6.使能定时器

7.中断服务函数

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_38639426/article/details/88632958