ch554 PWM问题

我使用P3.0和P3.1作为pwm的输出引脚,可是不管怎么配置,io就是没有输出,如果直接写io的话就有反应,请问是什么原因?


        P3_MOD_OC &= ~(bPWM1_ | bPWM2_); //设置PWM引脚为推挽输出

P3_DIR_PU |= bPWM1_ | bPWM2_;

PIN_FUNC |= bPWM1_PIN_X; //PWM1使用P3.0

PIN_FUNC |= bPWM2_PIN_X; //PWM2使用P3.1

//PWM

PWM_CK_SE= 24; //PWM分频系数

PWM_DATA1 = 0x80;

PWM_DATA2 = 0x80;

PWM_CTRL |= bPWM1_OUT_EN | bPWM2_OUT_EN | bPWM_CLR_ALL;


您好,PWM_CTRL寄存器中的bPWM_CLR_ALL 需要手动清0,后续的代码是否有将这个位清掉呢?


你好,WM_CTRL寄存器中的bPWM_CLR_ALL 需要手动清0,后续在哪里清除呢,中断么


@

@低调


//PWM

PWM_CK_SE= 24; //PWM分频系数

PWM_DATA1 = 0x80;

PWM_DATA2 = 0x80;

PWM_CTRL |= bPWM1_OUT_EN | bPWM2_OUT_EN | bPWM_CLR_ALL;    << 你这前面那么多都白写了,被你清掉了。

应该这样:

//PWM

PWM_CTRL |= bPWM_CLR_ALL;        //清PWM设置

PWM_CTRL &= ~bPWM_CLR_ALL;        //不清PWM设置

PWM_CK_SE= 24; //PWM分频系数

PWM_CTRL |= bPWM1_OUT_EN | bPWM2_OUT_EN;    //输出使能

PWM_DATA1 = 0x80;

PWM_DATA2 = 0x80;


后续不改 PWM_CTRL, PWM_CK_SE 这两个寄存器, 不用再清。清完必须立刻设回来,不然PWM不工作。



感谢,大神。确实可以了。


CH545 /CH9732B  发送串口数据的时候,别人回数据第一次会有概率收不到,必须要发送两次给到CH545,这个一般什么问题哈,谢谢


只有登录才能回复,可以选择微信账号登录