CC2530通用I/O

PxSEL寄存器用来设置端口为通用IO还是外设IO,0为通用IO、1为外设IO,默认为通用IO。

PxDIR寄存器用来设置端口为输入还是输出,0为输入、1为输出,默认为输入。

在输入模式下,PxINP寄存器用来设置端口为上拉/下拉或三态,0为上拉 /下拉、1为三态,默认为上拉/下拉。P2INP bit5-7表示端口组0-2上拉或下拉,0为上拉、1为下拉,默认为上拉。

在输入模式下,可以用于产生中断,EA位用来表示总中断,0表示禁止、1表示中断。

IENx寄存器中PxIE位用来设置端口组中断,0表示禁止、1表示中断。

PxIEN寄存器用来设置端口中断,0表示禁止、1表示中断。

PICTL寄存器中PxICON位用来设置端口中断触发,0表示上升沿、1表示下降沿。
PxIFG寄存器用来表示端口中断状态,1表示产生中断。
PxIF位用来表示端口组中断状态,1表示产生中断。

例:1.配置P0_1为输出
          P0SEL &= 0xFD;    //设置P0_1为普通IO口
          P0DIR |= 0x02;       //设置P0_1为输出

        2.配置P0_5为上拉输入
           P0SEL &= 0xDF;    //设置P0_1为普通IO口
           P0DIR &= 0xDF;    //设置P0_1为输入
           P0INP &= 0xDF;    //设置P0_1为上拉/下拉
           P2INP &= 0xDF;    //设置P0为上拉

        3.配置P2_0为中断
           P2SEL &= 0xFE;    //设置P2_0为普通IO口
           P2DIR &= 0xFE;    //设置P2_0为输入
           EA = 1;                   //打开总中断
           IEN2 |= 0x02;         //打开P2中断
           P2IEN |= 0x01;      //打开P2_0中断
           PICTL = 1;             //下降沿触发
           P2IFG &= 0xFE;    //清除P2_0中断状态
           P2IF = 0;               //清除P2中断状态

        4.P2_0中断函数
           #pragma vector = P2INT_VECTOR    //P2中断向量
           __interrupt void io_req()
           {
               if((P2IFG & 0x01) == 0x01)    //P2_0发生中断
               {
                   ;    //P2_0中断处理代码
               }
               P2IFG &= 0xFE;    //清除P2_0中断状态
               P2IF = 0;    //清除P2中断状态
           }

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值