1 (PIN) & (uint16_t)0x00) == 0x00PIN与0x00相与;无论PIN为何值其相与的结果都为0x00;也就是这个等式恒成立成立;
2 (PIN) !=(uint16_t)0x00)如果PIN=0x00;就不成立;其他的PIN值都成立;
1&&2 表示两者都成立为真 否则为假;也就是PIN的值不能为0x00;
#define GPIO_Pin_0 ((uint16_t)0x0001) =>#define GPIO_Pin_0 0000 0000 0000 0001
#define GPIO_Pin_1 ((uint16_t)0x0002) =>#define GPIO_Pin_0 0000 0000 0000 0010
#define GPIO_Pin_2 ((uint16_t)0x0003) =>#define GPIO_Pin_0 0000 0000 0000 0100
......
#define GPIO_Pin_15 ((uint16_t)0x0001) =>#define GPIO_Pin_0 1000 0000 0000 0000
实际应用举例
void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
{
/* Check the parameters */
assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
assert_param(IS_GPIO_PIN(GPIO_Pin));
GPIOx->BSRR = GPIO_Pin;
}