OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3476|回复: 2

关于舵机的(MG995)

[复制链接]

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-9-17
在线时间
11 小时
发表于 2017-11-16 21:47:31 | 显示全部楼层 |阅读模式
2金钱
这是我写的程序,为什么舵机没有反应呢?
这是主函数
int main(void)
{               
        u8 dir=1;       
        delay_init();                              
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);        
        LED_Init();                          
        TIM3_PWM_Init(7199,199);       
           while(1)
        {               
               
                TIM_SetCompare2(TIM3,7020);
    delay_ms(1000);
               
        }


下面是定时器输出PWM
void TIM3_PWM_Init(u16 arr,u16 psc)
{  
         GPIO_InitTypeDefGPIO_InitStructure;
         TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
         TIM_OCInitTypeDef  TIM_OCInitStructure;
         
         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE);  
         
         GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);   
         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
         GPIO_InitStructure.GPIO_Mode= GPIO_Mode_AF_PP;
         GPIO_InitStructure.GPIO_Speed= GPIO_Speed_50MHz;
         GPIO_Init(GPIOB,&GPIO_InitStructure);//3õê¼»ˉGPIO
   
         TIM_TimeBaseStructure.TIM_Period= arr;
         TIM_TimeBaseStructure.TIM_Prescaler=psc;
         TIM_TimeBaseStructure.TIM_ClockDivision= 0;
         TIM_TimeBaseStructure.TIM_CounterMode= TIM_CounterMode_Up;  
         TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
         
         TIM_OCInitStructure.TIM_OCMode= TIM_OCMode_PWM2;   
TIM_OCInitStructure.TIM_OutputState= TIM_OutputState_Enable;   
  TIM_OCInitStructure.TIM_OCPolarity= TIM_OCPolarity_High;  
  TIM_OC2Init(TIM3,&TIM_OCInitStructure);
         TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);  
         TIM_Cmd(TIM3,ENABLE);
}

帮我看看错哪了
舵机的控制,周期是20ms
0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2.0ms-----------135度; 2.5ms-----------180度;




最佳答案

查看完整内容[请看2#楼]

我自己解决了,程序其实是没有错的,没有动是因为舵机就是具有特别的电机,打到一个角度之后就不会再动了,只能改角度,而且最关键的是功率一定要够
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-9-17
在线时间
11 小时
 楼主| 发表于 2017-11-16 21:47:32 | 显示全部楼层
我自己解决了,程序其实是没有错的,没有动是因为舵机就是具有特别的电机,打到一个角度之后就不会再动了,只能改角度,而且最关键的是功率一定要够
回复

使用道具 举报

5

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2020-1-28
在线时间
19 小时
发表于 2020-2-4 12:05:43 | 显示全部楼层
青风士子 发表于 2017-11-16 21:47
我自己解决了,程序其实是没有错的,没有动是因为舵机就是具有特别的电机,打到一个角度之后就不会再动了, ...

兄弟,你这个程序舵机正常转吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-20 03:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表