LPC2132GPIO
LPC2132具有多达47个通用I/O口(GPIO,General I/O port),分别为P0[31:0]、P1[31:16],其中,P0.24未用,P0.31仅为输出口。由于口线与其它功能复用,需要进行相关的管脚连接模块(PINSEL0、PINSEL1、PINSEL2)选择连接GPIO,然后通过IODIR进行输入/输出属性设置后才能操作
当管脚选择 GPIO 功能时,有 3 个寄存器用于控制 GPIO 的使用,IOSET、IOCLR 和IOPIN。IOSET用于口线置 1,而 IOCLR 则用于口线清零,IOPIN 则反映当前IO 口的状态,读回 IOSET 则反映当前 IO 口设定状态。
特性
- 单个位的方向控制:
- 单独控制输出的置位和清零
- 所有 I0 口在复位后默认为输入
寄存器描述
LPC2131 有2个 32 位的通用I/O口。PORTO 使用了 30 个管脚,PORT1 有多达 16 个管脚可用作GPIO功能。PORT0 和PORT1由2组(4个)寄存器控制
其实这是一种普遍情况:当往某个寄存器只有写入特定逻辑的值才有效,而写入反逻辑的值无效时(如只有写入1有效而写入0无效,或者至于写入0有效而写入1无效),只操作其中某一位或者某些位时,可以不必关心其它位的状态,即不必读回原来的值,进行与或操作后进行回写。
一般情况下,有这种特性的寄存器,均会有置位和清零寄存器成对出现,如IO0SET和IO0CLR.