有四组GPIO,gpio1 ~ gpio4,每组32个端子,序号从0~31。例如,GPIO1_IO00 ~ GPIO1_IO31。
表示GPIO状态时,一组寄存器的32个端子用32bit表示,正好四个字节。
每组GPIO都有各自的寄存器,基地址空间不同,但其布局和偏移是一致的。
1,偏移0x54寄存器PDDR用来设置整组GPIO的输入输出方向,1表示输出,0表示输入。
reset后值为0。
2,偏移0x50寄存器PDIR用来读取整组GPIO的输入电平,1表示高电平(Logic 1),0表示低电平(Logic 0)。
reset后值为0。
3,偏移0x40寄存器PDOR用来设置整组GPIO的输出电平,1表示高电平(Logic 1),0表示低电平(Logic 0)。
reset后值为0。
4,偏移0x44,0x48,0x4C寄存器(PSOR, PCOR, PTOR)用来对整组GPIO或部分GPIO进行操作,避免影响其他不需要操作的GPIO。
0x44设置高电平(set),0x48设置低电平(clear),0x4C反转电平(toggle)。
对需要操作的GPIO,相应的bit位写入1,表示需要操作。
</