第一次加入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)
|