1.基本定时器的回顾:
1.1基准时钟:计数器+分频器+重装载器
计数器:累加计数
分频器:得到你想要的时钟脉冲
重装载器:装载计数器的最大值;
1.2时钟:TIM6_CLK时钟---72MHz
1.3TIM6定时原理:
分频得到计数时钟,让计数器累加,到最大值产生溢出事件,进而产生更新事件,如果使能中断,就会产生更新中断!
计数时钟*重装载值==定时时间!
更新事件 :所有寄存器都会被更新!
72000000/7200==10k
配置步骤:
- 打开时钟--TIM6_CLK
- 设置分频值和重装载值
- 配置中断---NVIC
- 使能更新中断
- 使能计数器---CEN!
- 编写中断服务函数!
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
- 配置中断
- 使能更新中断
- 使能定时器
- 编写中断服务函数
应用:
判断是否产生更新中断;
清中断标志;
设置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.中断服务函数