定时器比较输出
2016-12-05 18:57
549 查看
// 通道对应的引脚模式要设置成:GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // 因为这个问题弄了三个小时 //初始化TIM3 设置为输出比较模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; // 1 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //2 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //3 TIM_OCInitStructure.TIM_Pulse = 0x3FFF; // TIM_Pulse设置了待装入捕获比较寄存器的脉冲值。 // 它的取值必须在0x0000和0xFFFF之间。 // 可以用TIM_SetCompare2(TIM3,led0pwmval);函数更改。 TIM_OC2Init(TIM3, &TIM_OCInitStructure); //根据T指定的参数初始化外设TIM3 OC2 TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //4 TIM_ARRPreloadConfig(TIM3, TIM_OCPreload_Enable); //5
1
CCMR1: OC1M[2:0]位: 用于设置PWM模式1【110】或者PWM模式2【111】不同模式的具体含义查看手册寄存器对应的位。
2
使能输出,使对应通道有信号。3
CCER:CC1P位:输入/捕获1输出极性。0:高电平有效,1:低电平有效。/*
如程序:PWM模式2 和 TIM_OCPolarity_High 决定了
当TIMx_CNT < TIMx_CCR1时通道为无效电平对应为低电平。
*/
4
使能预装载寄存器对应的库函数:
void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload);
5
影子寄存器:void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState);
简单的说,ARPE=1,ARR立即生效。APRE=0,ARR下个比较周期生效。
相关文章推荐
- 1. avr定时器/计数器0 --TC0 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- mc9s12dg128使用定时器的输出比较产生定时中断代码亮1S灭1S
- 2. avr定时器/计数器0 --TC0 --快速PWM输出 (比较输出--快速PWM模式)
- STM32定时器输出比较(PWM)
- 3. avr定时器/计数器0 --TC0 --相位修正PWM模式 (比较输出--相位修正PWM 模式)
- 4. avr 定时器/计数器1 --TC1 --CTC模式输出PWM (比较匹配发生时清除计数器模式(即CTC模式))
- EFM32小记----定时器配置为捕获、比较以及PWM输出注意事项
- 5. avr定时器/计数器1 --TC1 --快速PWM输出 (比较输出--快速PWM模式)
- 【转】STM32定时器输出比较模式中的疑惑
- 怎么用STM32配置产生PWM(一个定时器用输出比较方式产生不同频率的PWM)
- STM32之通用定时器输出比较模式
- 基于STM32处理器 定时器比较输出测试程序
- STM32定时器输出比较模式中的疑惑
- 定时器的输出比较模式产生的PWM波的频率计算
- stm32定时器PWM模式和输出比较模式
- CC2530定时器配置笔记2(比较输出功能配置)
- STM32定时器输出比较模式中的疑惑
- STM32TIM输出比较的三种模式及一个定时器如何输出频率不同的PWM波
- stm32的定时器输入捕获与输出比较
- TIM通用定时器(二):输出比较——翻转模式