stm32f407之高级定时器 死区互补PWM(操作寄存器)
2012-09-08 09:55
381 查看
十四、高级定时器
死区互补PWM
高级定时器的功能有很多,这里只介绍死区互补PWM输出功能。其实死区互补PWM跟通用定时器的PWM配置差异不大,只是需要设置多CCER寄存器中的几个位以及刹车与死区寄存器BDTR。对寄存器的具体描述请参考数据手册。
配置步骤:
1. 使能相关时钟。
2. 配置相关的引脚模式、速度、以及复用功能。
3. 使能TIM时钟
4. 设置分频。
5. 设置周期。(ARR的值)周期=(PSC+1)* ARR / TIMx时钟
6. 产生一次更新事件,更新影子寄存器的值。
7. 在CCMR中设置PWM模式。
8. 设置各通道占空比。占空比= CCRx / ARR。
9. 使能比较输出。
10. 启动预装载。
11. 死区时间设定,使能输出。
12. 打开定时器。
程序:
死区互补PWM
高级定时器的功能有很多,这里只介绍死区互补PWM输出功能。其实死区互补PWM跟通用定时器的PWM配置差异不大,只是需要设置多CCER寄存器中的几个位以及刹车与死区寄存器BDTR。对寄存器的具体描述请参考数据手册。
配置步骤:
1. 使能相关时钟。
2. 配置相关的引脚模式、速度、以及复用功能。
3. 使能TIM时钟
4. 设置分频。
5. 设置周期。(ARR的值)周期=(PSC+1)* ARR / TIMx时钟
6. 产生一次更新事件,更新影子寄存器的值。
7. 在CCMR中设置PWM模式。
8. 设置各通道占空比。占空比= CCRx / ARR。
9. 使能比较输出。
10. 启动预装载。
11. 死区时间设定,使能输出。
12. 打开定时器。
程序:
/************************************ 标题:死区互补PWM 软件平台:IAR for ARM6.21 硬件平台:stm32f4-discovery 主频:168M 描述:三对死区互补PWM、一路普通PWM PE8 ----- TIM1_CH1N PE9 ----- TIM1_CH1 PE10 ----- TIM1_CH2N PE11 ----- TIM1_CH2 PE12 ----- TIM1_CH3N PE13 ----- TIM1_CH3 PE14 ----- TIM1_CH4 author:小船 data:2012-02-09 *************************************/ #include <stm32f4xx.h> void main () { SCB->AIRCR = 0x05FA0000 | 0x400; //中断优先级分组 抢占:响应=3:1 RCC->AHB1ENR |= (1<<4); //打开GPIOE时钟 GPIOE->MODER |= 0X2AAA0000;//PE8、9、10、11、12、13、14第二功能 //推挽输出 GPIOE->OSPEEDR |= 0x3fff0000;//速度100m GPIOE->PUPDR |= 0x15550000;//上拉 //PE8、9、10、11、12、13、14第二功能AF1 GPIOE->AFR[1] |= 0x01111111; RCC->APB2ENR |= (1<<0); //打开TIM1时钟 TIM1->PSC = 167; //对时钟168M进行168分频,使得计数频率为1M TIM1->ARR = 10000; //周期10ms TIM1->EGR |= 1; //产生一次更新事件 TIM1->CCMR1 |= 0x6060;//PWM模式1 TIM1->CCMR2 |= 0x6060;//PWM模式1 TIM1->CCR1 = 8000;//设置占空比 TIM1->CCR2 = 6000; TIM1->CCR3 = 4000; TIM1->CCR4 = 2000; TIM1->CCER |= 0x1ddd;//使能比较输出 TIM1->CCMR1 |= 0x0808;//启动预装载 TIM1->CCMR2 |= 0x0808; TIM1->BDTR|=1<<15; // 刹车使能位置1,开启所有输出通道 TIM1->BDTR|=0xCD; // 死区时间设定 TIM1->CR1 |= 1; //开始计时 while(1) { }; }
相关文章推荐
- stm32f407之高级定时器 死区互补PWM(操作寄存器)
- R4 STM32高级定时器笔记之PWM互补输出
- stm32高级定时器1&高级定时器8,3通道带死区互补输出配置
- stm32f407之PWM(操作寄存器)
- STM32F4高级定时器产生六路互补PWM波
- stm32f407之PWM(操作寄存器)
- STM32F103的高级定时器1带死区互补输出配置
- STM32: 利用高级定时器产生6路互补PWM波形输出在BLDC中H-PWM-L-ON驱动方式下驱动无刷电机
- stm32f407之DMA(操作寄存器)
- stm32f407之DMA(操作寄存器)
- stm32f407之基本定时器TIM6&TIM7(操作寄存器)
- STM32的高级定时器里面死区的概念
- STM32F103的11个定时器详解 高级定时器pwm
- stm32 高级定时器产生PWM
- C51单片机中断,寄存器,定时器,PWM原理,配置及使用
- STM32F107高级定时器TIM1使用互补PWM输出
- STM32F407ZGT6 定时器1输出7路PWM(互补输出)
- stm32f407之基本定时器TIM6&TIM7(操作寄存器)
- STM32高级定时器TIM1、TIM15输出PWM
- stm32f407之DAC(操作寄存器)