各位朋友好,需要ch579F使用PA11引脚输出pwm信号,pwm要求如下:
PWM 控制频率 20-50KHz 方波信号
PWM 占空比 40%
参考网络搜索资料,PA11引脚是LSE晶振引脚,要保证关闭才能使用其他功能
PWR_UnitModCfg( DISABLE, UNIT_SYS_LSE );
查看官方提供的pwm例程,没有发现TMR2实现pwm的案例,能否给与协助,就是使用ch579F的PA11引脚输出上面的方波信号。
软件出身,硬件不是特别熟悉,请给予协助,谢谢各位。
各位朋友好,需要ch579F使用PA11引脚输出pwm信号,pwm要求如下:
PWM 控制频率 20-50KHz 方波信号
PWM 占空比 40%
参考网络搜索资料,PA11引脚是LSE晶振引脚,要保证关闭才能使用其他功能
PWR_UnitModCfg( DISABLE, UNIT_SYS_LSE );
查看官方提供的pwm例程,没有发现TMR2实现pwm的案例,能否给与协助,就是使用ch579F的PA11引脚输出上面的方波信号。
软件出身,硬件不是特别熟悉,请给予协助,谢谢各位。
求人不如求自己,翻了一些帖子,仔细看了下手册,
最后参考了https://www.wch.cn/bbs/thread-86016-1.html
代码如下:
//函数内Khz为要要设置的频率,zkb为占空比
void timer2_pwm_set(int khz,int zkb)
{
PWR_UnitModCfg( DISABLE, UNIT_SYS_LSE );
time_val = FREQ_SYS / 1000 / khz; //1S/KHZ
GPIOA_ResetBits( GPIO_Pin_11 );
GPIOA_ModeCfg(GPIO_Pin_11, GPIO_ModeOut_PP_5mA);
R32_TMR2_FIFO = 0;
R8_TMR2_CTRL_MOD = RB_TMR_ALL_CLEAR;
R32_TMR2_CNT_END = time_val;
R8_TMR2_CTRL_MOD = 0;
R32_TMR2_FIFO = time_val / 100 *zkb ;
R8_TMR2_CTRL_MOD = (RB_TMR_COUNT_EN | RB_TMR_OUT_EN);
GPIOA_ResetBits( GPIO_Pin_11 );
}
您好,TMR的pwm功能可参考TMR例程,PWM例程中8位的pwm。