(STM32F103ZET6)SG90舵机的驱动程序

今天学习了有关SG90舵机的相关内容,基于STM32F103ZET6芯片写了该舵机的驱动程序。供大家参考。

1. SG90的相关知识:
SG90舵机旋转的角度是180°。 舵机的控制一般需要一个20ms的脉宽调制(PWM)信号,该脉冲的高电平部分一般为0.5ms-2.5ms范围相对应舵盘位置的0-180°
0.5ms--------------0度
1.0ms--------------45度
1.5ms--------------90度
2.0ms--------------135度
2.5ms--------------180度

2. SG90接线
SG90分别有三根线。棕色,红色,橙色
棕色接地(GND)
红色接电源(+5V)。(我试过接3.3v,舵机并没有转动,但是会发生嗡嗡的声响)
橙色接输出PWM信号的引脚

3. GPIO初始代码
我使用的是TIM1的通道1来控制舵机的。TIM1通道1对应的GPIO是PA8

//GPIO初始化
static void advanceTime_GPIO_Config(void)
{
   
	//开启时钟
	RCC_TIMEGPIO_CMD(RCC_TIMEGPIO,ENABLE);
	//配置GPIO结构体
	GPIO_InitTypeDef GPIO_InitStruct;
	GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;
	GPIO_InitStruct.GPIO_Pin = TIME1_GPIO_PIN;
	GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(TIME1_GPIO, &GPIO_InitStruct);
}
//GPIO相关宏定义
#define RCC_TIMEGPIO_CMD        		RCC_APB2PeriphClockCmd
#define RCC_TIMEGPIO					RCC_APB2Periph_GPIOA
  • 6
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值