一、基本概念理解
1. 输出比较:打开一个TIMx计数器,再打开TIMx的一路或几路输出比较器(共4路),都配置好以后,计数器开始计数,当计数器里的值和
比较寄存器里的值相等时,产生输出比较中断,在中断中将计数器中的值读出,与翻转周期相加再写道比较寄存器中,使得和
下一个事件有相同的翻转周期。
2. 举例说明:例如TIM时钟频率设置为12MHZ,输出比较寄存器中的自装载值为600(高电平或低电平计数值),则输出的PWM频率为
frequency = 12MHZ/(600*2)=10KHZ。
二、程序设计与分析
1. TIM计数器和输出比较器的配置
uint16_t capture = 0;
extern __IO uint16_t CCR1_Val;
extern __IO uint16_t CCR2_Val;
extern __IO uint16_t CCR3_Val;
extern __IO uint16_t CCR4_Val;
void TIM_Configuration(void)
{
/* Time base configuration */
TIM_TimeBaseStructure.TIM_Period = 65535;