CH582控制舵机

大佬们,萌新想用CH582M来控制舵机,舵机的参数如下,我是该用定时器还是用管脚自带的PWM调试,上午测试一下用定时器3来控制PB0来输出波形,但是示波器没有出现,然后用管脚自带的话,怎么设置2ms的周期和占空比呀,大佬们救救

1681182176171874.png

1681182176553781.png


定时器pwm输出的io是固定的,tmr3对应着pb22,pb0是8位pwm引脚。

精确的频率建议使用定时器的pwm。


大佬,如果用8位的PWM的话,我这边想设置2ms一个周期也就是500Hz,需要怎么设置,设置那些参数,60Mhz的主频超了



建议用定时器的pwm去配置。

GPIOB_ResetBits(GPIO_Pin_22);//配置PWM口PB22
GPIOB_ModeCfg(GPIO_Pin_22,GPIO_ModeOut_PP_5mA);
TMR3_PWMInit(High_Level,PWM_Times_1);
TMR3_PWMCycleCfg(120000);//周期2ms
TMR3_Disable();
TMR3_PWMActDataWidth(60000);//占空比50%,修改占空比必须暂时关闭定时器
TMR3_Enable();



如果用8位的PWM,可以这样配置看看:

SetSysClock(CLK_SOURCE_PLL_32MHz);
GPIOA_ModeCfg(GPIO_Pin_13,GPIO_ModeOut_PP_5mA);//PA13-PWM5
PWMX_CLKCfg(250);//cycle=250/Fsys
PWMX_CycleCfg(PWMX_Cycle_256);//周期=256*cycle
PWMX_ACTOUT(CH_PWM5,256/2,Low_Level,ENABLE);//50%占空比

好的,谢谢大佬


怎么芯片上的PWM7、PWM8、PWM9有两组,所以是PWM7-PB1、PWM8-PB2、PWM9-PB3还是PWM7-PB4、PWM8-PB6、PWM9-PB7呢69a47a60bfa9a4d042c8eed29f618b0.png


他们是映射关系,默认PWM7-PB4,PWM8-PB6,PWM9-PB7,后面有下划线的是用映射脚,调用

GPIOPinRemap(RB_PIN_PWMX);

就是选用映射功能脚。


收到,谢谢大佬



如果用CH592控制舵机,用什么IO,该如何配置?有没有控制舵机的样机,死活搜不到啊

感觉整个搜索引擎就这1个链接讲CH582如何控制舵机,没有其它文章或者示例。


你需要去查看被控制的舵机,是通过什么方式驱动,比如特定波形,则PWM进行驱动。或者使用定时器进行驱动。比较建议的操作是,查找一份之前驱动过的MCU的代码,然后查看它的驱动方式和通信协议,模仿该协议。


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