cc2530裸机编程系列笔记4--GPIO口的使用
2015-12-06 22:45
267 查看
CC2530的GPIO口的使用与普通51单片机略有不同,主要体现在IO口在使用之前需要进行功能及方向的设定。功能的设置指的是把IO口设置为普通IO口还是当作特殊功能来使用。方向的设定指的是将IO口设为输入或输出。进行这两个设置使用的寄存器分别为PxSEL和PxDIR。
CC2530 的SFR 中有三类寄存器可用于配置这些IO 口:
①PxSEL(x 为0/1/2):P0/P1/P2 口功能选择
0:通用数字IO,1:外设IO,缺省默认为0
②PxDIR(x 为0/1/2):P0/P1/P2 口方向
0:输入,1:输出,缺省默认为0
③PxINP(x 为0/1):P0/P1 口输入模式
0:上拉/下拉,1:三态,缺省默认为0
在使用IO 口时需配置,若缺省,则取系统默认值。设置代码如下:
By:霜月孤鸟
2015.12.6
CC2530 的SFR 中有三类寄存器可用于配置这些IO 口:
①PxSEL(x 为0/1/2):P0/P1/P2 口功能选择
0:通用数字IO,1:外设IO,缺省默认为0
②PxDIR(x 为0/1/2):P0/P1/P2 口方向
0:输入,1:输出,缺省默认为0
③PxINP(x 为0/1):P0/P1 口输入模式
0:上拉/下拉,1:三态,缺省默认为0
在使用IO 口时需配置,若缺省,则取系统默认值。设置代码如下:
P1SEL = 0x00; //设置P1 为普通 I/O 口 P1DIR |= 0x0F; //设置P1_0、P1_1 为输出对开发板上的LED进行闪灯的操作,具体程序为:
//引入头文件 #include <ioCC2530.h> //引入CC2530 所对应的头文件(包含各SFR 的定义) //定义LED 引脚 #define led1 P1_0 //定义LED1 为P1_0 口控制 #define led2 P1_1 //定义LED2 为P1_1 口控制 void Delay(unsigned char n) { unsigned char i; unsigned int j; for(i = 0; i < n; i++) for(j = 1; j; j++) ; } void main(void) { P1SEL = 0x00; //设置P1 为普通 I/O 口 P1DIR |= 0x03; //设置P1_1,P1_1 为输出 led1 = 1; //初始化,4 个led 灯全熄 led2 = 1; while(1) //开始循环 { led1 = 0; //led1 闪烁 Delay(10); led1 = 1; Delay(10); led2 = 0; //led2 闪烁 Delay(10); led2 = 1; Delay(10); } }
By:霜月孤鸟
2015.12.6
相关文章推荐
- windows cc2530 6lowpan(contiki)报文监控
- zigbee网蜂cc2530组播实验,基于SampleApp例程
- 关于CC2530存储器映射的讨论
- RSSI与距离d之间的关系
- CC2530串口通讯2
- CC2530主要的控制寄存器
- zigbee 出现 Energy level Scan Failed解决方法
- CC2530 事件轮询流程
- CC2530中断处理方法
- cc2650鼓捣教程-1.硬件选型与contiki 6lowpan环境配置
- 定时器触发事件流程
- Zigbee-CC2530开发板协议栈-修改发射功率
- cc2530在ZSTACK中如何开启双串口模式(UART1中断方式)
- CC2530 Note 1:( ProcessEvent, MSGpkt, MessageMSGCB)
- Z-STACK中XDATA数据占用情况分析
- ZBOSS_Sniffer用开源方案实现CC2530的抓包
- cc2530裸机编程系列笔记1--定时器Timer1模模式的程序设计
- cc2530裸机编程系列笔记2--定时器Timer1模模式程序(中断方式)
- CC2530存储空间——Code
- CC2530 Hex文件解析