【C】如何操作bit位
bit位的置0置1以及判断某bit是否为0位1regValue (GPIO_Pin_13 | GPIO_Pin_15); if ((HT_GPIOB-IOCFG regValue) ! regValue) { HT_GPIOB-IOCFG | regValue; } if ((HT_GPIOB-AFCFG regValue) ! regValue) { HT_GPIOB-AFCFG | regValue; } if ((HT_GPIOB-PTUP regValue) ! 0) { HT_GPIOB-PTUP ~regValue; } if ((HT_GPIOB-PTOD regValue) ! regValue) { HT_GPIOB-PTOD | regValue; } if ((HT_GPIOB-PTDIR regValue) ! 0) { HT_GPIOB-PTDIR ~regValue; }需要判断某个寄存器里多个bit置位一定要用regValue比较不能只判等不等于0如果只有1个bit是可以这么判的。比如多个bit中只有一个异常结果还是不等于0则无法及时修正。在字节数据里操作bit位的宏#define SET_PAGE_BIT(PAGE, Bit) ((PAGE)(PAGE)|(0x01(Bit))) #define CLR_PAGE_BIT(PAGE, Bit) ((PAGE)(PAGE)(~(0x01(Bit)))) #define GET_PAGE_BIT(PAGE, Bit) ((((PAGE)(0x01(Bit)))0)?1:0)