typedef struct {
uint16_t bit0 : 1;
uint16_t bit1 : 1;
uint16_t bit2 : 1;
uint16_t bit3 : 1;
uint16_t bit4 : 1;
uint16_t bit5 : 1;
uint16_t bit6 : 1;
uint16_t bit7 : 1;
uint16_t bit8 : 1;
uint16_t bit9 : 1;
uint16_t bit10 : 1;
uint16_t bit11 : 1;
uint16_t bit12 : 1;
uint16_t bit13 : 1;
uint16_t bit14 : 1;
uint16_t bit15 : 1;
} Bits_16_TypeDef;
#define PAout(n) ((Bits_16_TypeDef *)(&(GPIOA->ODR)))->bit##n
#define PBout(n) ((Bits_16_TypeDef *)(&(GPIOB->ODR)))->bit##n
#define PAin(n) ((Bits_16_TypeDef *)(&(GPIOA->IDR)))->bit##n
#define PBin(n) ((Bits_16_TypeDef *)(&(GPIOB->IDR)))->bit##n
uint16_t bit0 : 1;
uint16_t bit1 : 1;
uint16_t bit2 : 1;
uint16_t bit3 : 1;
uint16_t bit4 : 1;
uint16_t bit5 : 1;
uint16_t bit6 : 1;
uint16_t bit7 : 1;
uint16_t bit8 : 1;
uint16_t bit9 : 1;
uint16_t bit10 : 1;
uint16_t bit11 : 1;
uint16_t bit12 : 1;
uint16_t bit13 : 1;
uint16_t bit14 : 1;
uint16_t bit15 : 1;
} Bits_16_TypeDef;
#define PAout(n) ((Bits_16_TypeDef *)(&(GPIOA->ODR)))->bit##n
#define PBout(n) ((Bits_16_TypeDef *)(&(GPIOB->ODR)))->bit##n
#define PAin(n) ((Bits_16_TypeDef *)(&(GPIOA->IDR)))->bit##n
#define PBin(n) ((Bits_16_TypeDef *)(&(GPIOB->IDR)))->bit##n