初级会员

- 积分
- 59
- 金钱
- 59
- 注册时间
- 2019-5-20
- 在线时间
- 23 小时
|
10金钱
H7的PWM教程,为什么修改CCR寄存器的值,也就是占空比,只能循环修改,就是不停的写入CCR的值才可以改变。如果直接只写入以此CCR的值,占空比就会变回初始化的时候的默认值。
找了一天了,也不知道为什么,太让人费解了。
int main(void)
{
u8 dir=1;
u32 led0pwmval=180000;
Cache_Enable(); //打开L1-Cache
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(160,5,2,4); //设置时钟,400Mhz
delay_init(400); //延时初始化
TIM2_PWM_Init(200000-1,20-1); //200M/20=10M的计数频率,自动重装载为200000,那么PWM频率为10M/200000=50HZ
while(1)
{
TIM_SetTIM2Compare1(180000);
}
}
也就是说这样放在while里是可以修改成功的。
int main(void)
{
u8 dir=1;
u32 led0pwmval=180000;
Cache_Enable(); //打开L1-Cache
HAL_Init(); //初始化HAL库
Stm32_Clock_Init(160,5,2,4); //设置时钟,400Mhz
delay_init(400); //延时初始化
TIM2_PWM_Init(200000-1,20-1); //200M/20=10M的计数频率,自动重装载为200000,那么PWM频率为10M/200000=50HZ
delay_us(300);
TIM_SetTIM2Compare1(180000);
}
但是这样就不可以,我还加了延时试过。
|
|