初级会员

- 积分
- 64
- 金钱
- 64
- 注册时间
- 2014-10-10
- 在线时间
- 0 小时
|
5金钱
TIM_TimeBaseStructure.TIM_Period = 65535; //当定时器从0计数到999,即为1000次,为一个定时周期
TIM_TimeBaseStructure.TIM_Prescaler = 29; //设置预分频,72/(29+1)=2.4M,
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分频系数:不分频(这里用不到)
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //向上计数模式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);//初始化定时器TIM3
/*****预分频与产生的频率及计数周期的个数的关系:f=72000KHZ/(a*n),其中f为要产生的频率;a为预分频数加1,即(a=29+1);
n为需要多少个计数周期也就是计数多少次;比如通道1,要产生2KH的方波,n=72000KHZ/(30*2KHZ)需要1200个计数周期,占空比为50%的话,
跳变值就要是600即TIM_Pulse = 600;*****/
/* PWM1 Mode configuration: Channel1 ,输出频率2.4KHZ,占空比50%,给转盘电机,驱动器2细分*/
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle ; //配置为输出比较翻转模式
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;//输出状态使能
TIM_OCInitStructure.TIM_Pulse = Val_Pulse_1; //设置跳变值,当计数器计数到这个值时,电平发生跳变
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //当定时器计数值小于CCR1_Val时为高电平
TIM_OC1Init(TIM3, &TIM_OCInitStructure); //使能通道1
TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Disable);//比较寄存器TIM4_CCR1预装载使能
------------------------------------------------------------------------------------------------------------------------------------------------------
还是没有看懂 计数周期是什么意思 它和跳变值是什么关系,求详细讲解下--------------忧伤的小芹菜 |
|