本帖最后由 迅得电子 于 2019-6-11 16:13 编辑
前提:下面这个程序是我在按键控制LED程序中节选的一段程序,两个demo都有相应的取反操作,我也试着交换使用,效果是一样的,但是想知道这两种取反有什么区别。
例如,哪个取反方法用在特定的地方之类的?谢谢啦!
一下就是节选程序。
//示例2:无锁存
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(!GPIO_ReadInputDataBit(KEYPORT,KEY1));
//示例3:有锁存
if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平
delay_ms(20); //延时去抖动
if(!GPIO_ReadInputDataBit(KEYPORT,KEY1)){ //读按键接口的电平
GPIO_WriteBit(LEDPORT,LED1,(BitAction)(1-GPIO_ReadOutputDataBit(LEDPORT,LED1))); //LED取反
while(!GPIO_ReadInputDataBit(KEYPORT,KEY1)); //等待按键松开
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
赶紧充电学习,技多不压身
哦哦,谢谢,!是逻辑非我知道,谢谢指导
楼上正解。没记错的话,GPIO_ReadOutputDataBit返回的是强制了类型为bool的(也就是0或者1,具体请看库里面)
另外,从函数名也可以看出来啊,是Bit。所以用1-x得到的结果“等于”取反操作的结果。
一周热门 更多>