请问这两个为什么结果不一样啊?不可以吗?

2019-07-20 05:17发布

//                        key_row &= ((GPIO_ReadInputDataBit(  GPIOB,  GPIO_Pin_12) << 0)|  //第四列
//                                        (GPIO_ReadInputDataBit(  GPIOB,  GPIO_Pin_14) << 1)|  //第三列
//                                        (GPIO_ReadInputDataBit(  GPIOD,  GPIO_Pin_8) << 2)|   //第二列
//                                        (GPIO_ReadInputDataBit(  GPIOD,  GPIO_Pin_10) << 3)); //第一列
                        key_row &= (((GPIOB->IDR &(1<<12)) << 0) |((GPIOB->IDR&(1<<14)) << 1) | ((GPIOD->IDR&(1<<8)) << 2) |((GPIOD->IDR&(1<<10)) << 3));

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。