OpenEdv-开源电子网

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

如何用PWM驱动舵机啊???

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-1-26
在线时间
1 小时
发表于 2015-1-27 17:36:50 | 显示全部楼层 |阅读模式
5金钱
。。。。。

最佳答案

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

GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体 TIM_OCInitTypeDef TIM_OCInitStructure; TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure; GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM3); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; //设置初始化GPIO为PIN9 GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//设置GPIO的速度为50MHz GPIO_InitStructure.GPIO ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
金钱
381
注册时间
2014-10-9
在线时间
6 小时
发表于 2015-1-27 17:36:51 | 显示全部楼层
GPIO_InitTypeDef GPIO_InitStructure; //定义GPIO初始化结构体
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;

GPIO_PinAFConfig(GPIOB,GPIO_PinSource1,GPIO_AF_TIM3);

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; //设置初始化GPIO为PIN9
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//设置GPIO的速度为50MHz
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//设置GPIO模式为复用模式 与103的区别
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//设置GPIO输出类型为推挽输出
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP; //设置GPIO为连接上拉电阻
GPIO_Init(GPIOB,&GPIO_InitStructure);   //初始化GPIOA的PIN9

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
    TIM_OCInitStructure.TIM_Pulse =0;// WM信号电平跳变值 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//当定时器计数值小于CCR1_Val时为高电平 

TIM_OC4Init(TIM3, &TIM_OCInitStructure); //使能通道3
TIM_OC4PreloadConfig(TIM3, TIM_OCPreload_Enable); 


TIM_TimeBaseStructure.TIM_Period = (20000-1);
TIM_TimeBaseStructure.TIM_Prescaler =(84-1);
TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);  
    
TIM_Cmd(TIM3, ENABLE); //使能定时器3
TIM_ARRPreloadConfig(TIM3, ENABLE); // 使能TIM3重载寄存器ARR

以前调试时定时器的配置,当时使用串口控制来着,再给你发下
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
{
 USART_SendData(USART1, USART_ReceiveData(USART1)); //发送收到的数据
 USART_ClearFlag(USART1, USART_FLAG_RXNE);
if(USART_ReceiveData(USART1)== 'a')    //停止 13
{
data=d;
TIM3->CCR4 =data;
d=0;
}    
if(USART_ReceiveData(USART1)<=57&&USART_ReceiveData(USART1)>=48)
{
  d=d*10+(USART_ReceiveData(USART1)-'0');
// TIM3->CCR4 =0;
}

}
}

仅供参考。。。
拿什么让你自己信服 自己
回复

使用道具 举报

28

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
金钱
381
注册时间
2014-10-9
在线时间
6 小时
发表于 2015-1-27 21:00:15 | 显示全部楼层
调试的说明书:
舵机的线的排列:红线是电源线   黄线是信号线   暗红是地线 控制的定时器应该配置成50HZ ,  速度应该在2.5%-12.5% 之间

建议先了解下舵机的一些性质,找一些资料先自己理解下。。
拿什么让你自己信服 自己
回复

使用道具 举报

28

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
金钱
381
注册时间
2014-10-9
在线时间
6 小时
发表于 2015-1-27 21:00:55 | 显示全部楼层
回复【3楼】真的好多巧合:
---------------------------------
这是  407   的。。。
拿什么让你自己信服 自己
回复

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13097
金钱
13097
注册时间
2012-11-26
在线时间
3811 小时
发表于 2015-1-27 21:24:05 | 显示全部楼层
只要算好占空比   控制舵机小case

0.5ms~2.5ms  /20ms

这些参数百度一坨。。。
学无止境
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-1-26
在线时间
1 小时
 楼主| 发表于 2015-1-28 12:14:15 | 显示全部楼层
回复【2楼】真的好多巧合:
---------------------------------
你好,非常感谢你,我也是刚学习这个,买的板子教学视频是用的寄存器版本的,与库函数版本是不是有所不同啊。。。还有你这个程序是哪个版本的啊??
回复

使用道具 举报

28

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
金钱
381
注册时间
2014-10-9
在线时间
6 小时
发表于 2015-1-28 14:03:58 | 显示全部楼层
回复【6楼】1258:
---------------------------------
STM32F407...
拿什么让你自己信服 自己
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-1-26
在线时间
1 小时
 楼主| 发表于 2015-1-30 10:44:38 | 显示全部楼层
回复【7楼】真的好多巧合:
---------------------------------
我的是STM32F103的。。
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2015-1-26
在线时间
1 小时
 楼主| 发表于 2015-1-30 11:38:44 | 显示全部楼层
回复【8楼】1258:
---------------------------------
103RC的
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-3-11
在线时间
0 小时
发表于 2015-3-11 22:05:33 | 显示全部楼层
回复【3楼】真的好多巧合:
---------------------------------
你在用407控制舵机么
回复

使用道具 举报

28

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
金钱
381
注册时间
2014-10-9
在线时间
6 小时
发表于 2015-3-11 23:28:03 | 显示全部楼层
回复【10楼】清雅张:
---------------------------------
恩,简单控制
拿什么让你自己信服 自己
回复

使用道具 举报

4

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2015-3-11
在线时间
0 小时
发表于 2015-3-12 13:17:58 | 显示全部楼层
回复【11楼】真的好多巧合:能加下QQ吗 我最近也在研究舵机控制 希望交流下 2273395477
---------------------------------
回复

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
24
金钱
24
注册时间
2020-1-25
在线时间
4 小时
发表于 2020-3-13 11:58:27 | 显示全部楼层
很有用
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-22 11:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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