个人学习记录,详细原理请参考其他优秀博客
sg90舵机控制
Cubmax初始化
1.定时器
2.按键
keil代码
pwm初始化,定义初始角度
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//启动pwm输出
HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_2);//
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,1500);//初始舵机角度90度
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,1500);
简单 按键检测、变量复位
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin)==GPIO_PIN_RESET)
{
HAL_Delay(100);
if(HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin)==GPIO_PIN_RESET)
{
key0++;if(key0==3)key0=1;
}
while(HAL_GPIO_ReadPin(KEY0_GPIO_Port,KEY0_Pin)==GPIO_PIN_RESET);//松手检测
}
按键按下第一次舵机180度,第二次0度,第三次180度.....循环往复
if(key0==1)
{
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,2500);//舵机角度180度
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,2500);
}
else if(key0==2)
{
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_2,500);//舵机角度0度
__HAL_TIM_SET_COMPARE(&htim1,TIM_CHANNEL_1,500);
}