stm32f103c8t6控制sg90舵机代码
时间: 2023-04-06 18:03:45 浏览: 330
STM32F103C8T6驱动SG90舵机源码
5星 · 资源好评率100%
我可以回答这个问题。以下是一个简单的示例代码:
#include "stm32f10x.h"
void delay_us(uint32_t us)
{
uint32_t i;
for(i=0;i<us*8;i++);
}
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);
while(1)
{
GPIO_SetBits(GPIOA, GPIO_Pin_0);
delay_us(1500);
GPIO_ResetBits(GPIOA, GPIO_Pin_0);
delay_us(18500);
}
}
这个代码使用了STM32F103C8T6的GPIO控制SG90舵机。舵机的控制信号是一个PWM信号,它的周期是20ms,高电平的持续时间决定了舵机的角度。在这个代码中,我们使用了一个GPIO口来控制舵机,高电平的持续时间是1.5ms,这对应着舵机的中间位置。我们通过改变高电平的持续时间来控制舵机的角度。
阅读全文