1,我们要知道三个关键寄存器
PxSEL //决定IO口功能, 1表示片上外设,0表示普通IO口
PxDIR //决定输入还是输出, 1表示输出, 0表示输入
PxINP //决定是上下拉模式还是三态, 1表示三态, 0表示上下拉
其中需要注意,
P2INP这个寄存器有点特殊,它的低四位是控制P2口上拉模式还是下拉模式,而高三位7,6,5是对应控制P2-P0的GPIO端口具体是上拉还是下拉!只要设置某一个IO口为上拉还是下拉,那么这一组IO口都是上拉或是下拉模式。0表示上拉,1表示下拉。
2,例如初始化P1_0为输出模式,点亮一个LED灯
P1SEL &=~0x01; //将P1SEL的第0位置零,其实这句可以不写,因为上电默认IO口是0;不过为了严谨还是写上。
P1DIR |= 0x01; //将P1DIR的第0位置1,输出模式。
P1INP |= 0x01; //将的P1INP第0位置1,表示浮空,输出的话这个其实也不用配置
以上就配置好了一个IO口了!对P1_0进行操作就可以控制LED灯的亮灭啦!
3,例如初始化P1_1作为输入,用来进行按键检测
P1SEL &=~0x02; //将P1SEL的第1位置0,普通IO口。
P1DIR &=~0x02; //将P1DIR的第1位置0,输入模式。
P1INP &=~0x02; //将P1INP第1位置0,上下拉模式。
P2INP &=~0x40; //将P2INP第6位置0,设置P1口为上拉模式。
以上就完成了,我们只需要读取P1_1就可以对按键进行检测了!