STM32中的一些符号,|和||,&和&&有什么区别呢?

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;
if(key_up&&(KEY0==0||KEY1==0||WK_UP==1));

你说的是C语言中的逻辑运算符,|是按位或,||是逻辑运算符,用于两个布尔变量或是式子结果进行逻辑或运算。以此类推,&和&&分别是按位与和逻辑与运算符。追答

|是按位或运算,||是逻辑或,&是按位与,&&是逻辑与。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-06-22
丨是按位或,如二进制数1010丨0101=1111
ll是逻辑或,如(a==blla==c),结果只能是0(假)或1(真)
&和&&也是这样,一个是接位与,一个是逻辑与。
像上面 的GPIO_Pin_3 GPIO_Pin_4 宏定义里定义为16位二进制数
但每一个引脚只有一位是1,两个引脚的16位二进制数按位求或后便有两个1
程序会根据哪一位是1来对不同引脚进行配置。
相似回答