独立按键松手检测的问题,求解

2019-07-21 00:24发布



为什么不能取反(stm32上同样,所以用51试试也不行)
unsigned char can(void){if(key_s2 == 0)        //判断是否按下S2{delay(5);  //软件消抖if(key_s2 == 0)//再次判断是否按下S2{return 1;//如果在这里用P1=~P1;就可以实现取反}while(!key_s2);//松手检测}return 0;
}
void main(){


while(1){switch(can()){case 11=~P1;break;//不能实现取反操作default:break;}

}}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
edmund1234
1楼-- · 2019-07-21 02:38
32不是51, 不能这样直接取舟的

假如你用的是PA5, 取反是这样的

GPIOA->ODR ^= (1<<5);
edmund1234
2楼-- · 2019-07-21 03:50
 精彩回答 2  元偷偷看……
高福民
3楼-- · 2019-07-21 07:20
STM32不支持,
也可以使用位带的方法,例如
#define LED1 PBout(5)// PB5
LED1= !LED1;
awsawzj
4楼-- · 2019-07-21 12:17
你这个return已经跳出函数了,后面检测松手没有意义了,你这个取反的意义是什么?

一周热门 更多>