找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2927|回复: 0
收起左侧

STM32通过按键控制舵机正反转,正反调速PWM程序

[复制链接]
ID:917293 发表于 2022-1-27 10:35 | 显示全部楼层 |阅读模式
第一次加入51黑,多有不足,请站内大佬多多指教,我也是刚入门不久小白
****************************************************************
单片机:STM32f103c8t6+独立按键模块+SG90  360度舵机(180度的也可以,需要把峰值调小)
主要编程工具软件:KEIL5,CUBEMX

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

         PA8接TIM1(PWM输出口)
注:如果接口需要调整,均可自行修改
附上单片机cube接口图:
捕获.PNG
部分主要代码:

//按键初始化函数
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;   //无按键按下
}
感谢支持!
1.jpg

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

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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