1819|0

6807

帖子

0

TA的资源

五彩晶圆(高级)

楼主
 

CC2530通用I/O [复制链接]

本帖最后由 Jacktang 于 2020-11-5 21:30 编辑

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中断状态
           }

 

此帖出自无线连接论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表