可以直接通过下面的代码实现,以GPIOA为例
#define BITBAND(addr bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) #define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) #define BIT_ADDR(addr bitnum) MEM_ADDR(BITBAND(addr bitnum)) #define GPIOA_ODR_Addr (GPIOA_base+12) //0x4001080C#define PAout(n) BIT_ADDR(GPIOA_ODR_Addrn) //输出 #define PAin(n) BIT_ADDR(GPIOA_IDR_Addrn) //输入