哥们,你的库函数跟我的不一样啦,是我的库太老了,还是你的哟?我的是:M051_Series_BSP_CMSIS_Rev3.00.001。
这个库我发现有个函数也有问题,也不知道是不是我看错了。我改了自己认为是正常了
PWM函数:uint32_t PWM_ConfigOutputChannel(PWM_T *pwm,uint32_t u32ChannelNum,uint32_t u32Frequency,uint32_t u32DutyCycle);
问题是:你前面设置好了PWM时钟来源,但这下面的部分会找错通道2,3,的PWM时钟源
文件:pwm.c 127行开始
if(pwm == PWMA)
//库函数问题部分
//u32Src = (CLK->CLKSEL1 & (CLK_CLKSEL1_PWM01_S_Msk << (u32ChannelNum >> 1))) >> (CLK_CLKSEL1_PWM01_S_Pos << (u32ChannelNum >> 1));
//自己修改部分
u32Src = (CLK->CLKSEL1 & (CLK_CLKSEL1_PWM01_S_Msk << ((u32ChannelNum >> 1)<<1))) >> (CLK_CLKSEL1_PWM01_S_Pos + ((u32ChannelNum >>1)<<1));
else /*pwm == PWMB*/
//库函数问题部分
//u32Src = (CLK->CLKSEL2 & (CLK_CLKSEL2_PWM45_S_Msk << (u32ChannelNum >> 1))) >> (CLK_CLKSEL2_PWM45_S_Pos << (u32ChannelNum >> 1));
//自己修改部分
u32Src = (CLK->CLKSEL2 & (CLK_CLKSEL2_PWM45_S_Msk << ((u32ChannelNum >> 1)<<1))) >> (CLK_CLKSEL2_PWM45_S_Pos + ((u32ChannelNum >>1)<<1));
希望官方把库维护好呀。
|