为什么不能取反(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;}
}}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
假如你用的是PA5, 取反是这样的
GPIOA->ODR ^= (1<<5);
也可以使用位带的方法,例如
#define LED1 PBout(5)// PB5
LED1= !LED1;
一周热门 更多>