OpenEdv-开源电子网

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

超简单的多路舵机控制

[复制链接]

44

主题

186

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1260
金钱
1260
注册时间
2012-9-1
在线时间
67 小时
发表于 2013-12-29 16:55:30 | 显示全部楼层 |阅读模式
void TIM3_PWM_Init(void)   //用来作为控制舵机
{  
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1; //TIM3时钟使能   
RCC->APB2ENR|=1<<4;     //使能PORTC时钟   
RCC->APB2ENR|=1<<0; //AFIO辅助功能时钟使能

AFIO->MAPR|=3<<10; //定时器3的重映像引脚(CH1/PC6,CH2/PC7,CH3/PC8,CH4/PC9)。

GPIOC->CRL&=0X00FFFFFF; //PC6,7输出
GPIOC->CRL|=0XBB000000; //复用功能输出
GPIOC->CRH&=0XFFFFFF00; //PC8,9输出 
GPIOC->CRH|=0X000000BB; //复用功能输出

GPIOC->ODR|=15<<6;       //PC6,7,8,9上拉    
  
TIM3->ARR=19999; //pwm频率=50Hz 
TIM3->SC=71; //

TIM3->CCMR1|=6<<4;   //CH1 PWM1模式
TIM3->CCMR1|=1<<3;      //CH1预装载使能

TIM3->CCMR1|=6<<12;   //CH2 PWM1模式
TIM3->CCMR1|=1<<11;     //CH2预装载使能

TIM3->CCMR2|=6<<4;   //CH3 PWM1模式
TIM3->CCMR2|=1<<3;      //CH3预装载使能

TIM3->CCMR2|=6<<12;   //CH4 PWM1模式
TIM3->CCMR2|=1<<11;     //CH4预装载使能
 
TIM3->CCER|=1<<0;   // CH1输出使能
TIM3->CCER|=1<<4;   // CH2输出使能
TIM3->CCER|=1<<8;   // CH3输出使能
TIM3->CCER|=1<<12;   // CH4输出使能  

TIM3->CR1=0x0080;   //ARPE使能
TIM3->CR1|=1<<0;     //使能定时器3
// TIM3->CCR3=1500; //占空比=7.5% 1500us脉冲
PWM_CH1=1500;   //占空比=7.5% 1500us脉冲
PWM_CH2=1500;
PWM_CH3=1500;
PWM_CH4=1500;      //改变PWM_CHx的值就改变占空比(舵机控制的范围1000---2000)
}    
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

44

主题

186

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1260
金钱
1260
注册时间
2012-9-1
在线时间
67 小时
 楼主| 发表于 2013-12-29 16:59:48 | 显示全部楼层
回复 支持 反对

使用道具 举报

53

主题

608

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2013-3-29
在线时间
18 小时
发表于 2013-12-29 17:02:48 | 显示全部楼层
回复【2楼】ye781205:
---------------------------------
楼主,这个图咋出来的
学电子,学音乐!!
回复 支持 反对

使用道具 举报

44

主题

186

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1260
金钱
1260
注册时间
2012-9-1
在线时间
67 小时
 楼主| 发表于 2013-12-29 17:11:29 | 显示全部楼层
回复【3楼】XINSI:
---------------------------------
多张图片合成的gif动画
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-1-26
在线时间
0 小时
发表于 2015-1-26 19:36:18 | 显示全部楼层
您好,我找了几种方法修改多路PWM的值,发现这种是最简单的,我按照上面代码修改了一下,我尝试在主函数while里面直接修改PWM_CHx的值,从而达到控制占空比改变舵机转角的目的,但是我试了一天也没有成功,这是我不成熟的代码,请大神纠正我的错误,谢谢!

ALIENTEK MiniSTM32 实验8 PWM输出实验.rar

640.76 KB, 下载次数: 129

回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-4-3
在线时间
0 小时
发表于 2015-4-3 17:50:13 | 显示全部楼层
回复【5楼】Sunlight晨昏破晓:
---------------------------------
这程序运行咋有错啊
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-24 02:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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