标题: STM32通过按键控制舵机正反转,正反调速PWM程序 [打印本页]

作者: wuyize    时间: 2022-1-27 10:35
标题: STM32通过按键控制舵机正反转,正反调速PWM程序
第一次加入51黑,多有不足,请站内大佬多多指教,我也是刚入门不久小白
****************************************************************
单片机:STM32f103c8t6+独立按键模块+SG90  360度舵机(180度的也可以,需要把峰值调小)
主要编程工具软件:KEIL5,CUBEMX

主要功能:按键1反向加速(长按一直加速直到设置峰值(峰值可修改,速度可修改)),按键2正向加速(同KEY1),按键3舵机停止
接线:KEY1接PA0
         KEY2接PA1
         KEY3接PA2

         PA8接TIM1(PWM输出口)
注:如果接口需要调整,均可自行修改
附上单片机cube接口图:

部分主要代码:

//按键初始化函数
void KEY_Init(void)
{

    MX_GPIO_Init();
}

//按键处理函数
//返回按键值
//mode:0,不支持连续按;1,支持连续按;
//0,没有任何按键按下
//1,WKUP按下 WK_UP
//注意此函数有响应优先级,KEY0>KEY1>KEY2>WK_UP!!
u8 KEY_Scan(u8 mode)
{
    static u8 key_up=1;     //按键松开标志
    if(mode==1)key_up=1;    //支持连按
    if(key_up&&(KEY1==0||KEY2==0||KEY3==0))
    {
        delay_ms(10);
        key_up=0;
        if(KEY1==0)       return KEY1_PRES;
        else if(KEY2==0)  return KEY2_PRES;
        else if(KEY3==0)  return KEY3_PRES;
           
    }else if(KEY1==1&&KEY2==1&&KEY3==1)key_up=1;
    return 0;   //无按键按下
}
感谢支持!


Keil代码下载:
程序.7z (5.62 MB, 下载次数: 104)






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1