ZigBee控制GPIO端口输入输出

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就可以对按键进行检测了!

你可能感兴趣的:(ZigBee)