STM32中的位运算技巧

//口诀:置位用|,复位用&,取反用^

unsigned int temp;   //定义无符号整形变量temp

//置位 temp的bit3为1,其他位不变
temp |= (1 << 3);

//置位 temp的bit3~bit7为1,其他位不变
temp |= (0x1f << 3);

//置位 temp的bit0~bit3为1,bit8~bit11为1,其他位不变
temp |= ( (0xf << 0) | (0xf << 8) );

//复位 temp的bit10为0,其他位不变
temp &= ~(1 << 10);

//复位 temp的bit10~bit13为0,其他位不变
temp &= ~(0xf << 10);

//复位 temp的bit0~bit3为0,bit8~bit11为0,其他位不变
temp &= ~( (0xf << 0) | (0xf << 8) );

//取出 temp的bit3~bit8,其余位清零
unsigned int a;
a = temp & (0x3f << 3);

//取反 temp的bit9取反,其他位不变
temp ^= (1 << 9);

你可能感兴趣的:(STM32中的位运算技巧)