CC2530 的 IO 口配置我们需要配置三个寄存器 P1SEL 、 P1DIR 、 P1INP。IO 口功能如下表所示: (详细参考 CC2530 datasheet.pdf)
CC2530 datasheet.pdf 的链接https://pan.baidu.com/s/1nLjYI8LgqxPH6WHd_n1Szw
* P1SEL (0:普通 IO 口 1:第二功能)
* P1DIR (0:输入 1:输出 )
* P1INP (0:上拉/下拉 1:三态 )
1 #include<ioCC2530.h> 2 #define LED1 P1_0 //定义P10口为LED1控制端 3 #define LED2 P1_1 //定义P11口为LED2控制端 4 #define LED3 P1_4 //定义P14口为LED3控制端 5 6 void IO_Init(void) 7 { 8 P1SEL &= ~0x01; 9 //P1DIR |= 0x01; //P1_0定义为输出 10 P1DIR |= 0x13; //P10、P11、P14定义为输出 11 LED1 = 1; //点亮LED1 12 P1INP &= ~0X13; //打开下拉 13 } 14 15 void main(void) 16 { 17 IO_Init(); //调用初始化程序 18 LED1 = 0; //点亮LED1 19 LED2 = 0; //点亮LED2 20 LED3 = 0; //点亮LED3 21 while(1); 22 }
1 #include <ioCC2530.h> 2 #define uint unsigned int 3 #define uchar unsigned char 4 //定义控制灯的端口 5 #define LED1 P1_0 //定义LED1为P10口控制 6 #define LED2 P1_1 //定义LED2为P11口控制 7 #define LED3 P1_4 //定义LED3为P14口控制 8 //函数声明 9 void Delay(uint); //延时函数 10 void InitIO(void); //初始化LED控制IO口函数 11 /**************************** 12 //延时 13 *****************************/ 14 void Delay(uint n) 15 { 16 uint i; 17 for(i = 0;i<n;i++); 18 for(i = 0;i<n;i++); 19 for(i = 0;i<n;i++); 20 for(i = 0;i<n;i++); 21 for(i = 0;i<n;i++); 22 } 23 /**************************** 24 //初始化IO口程序 25 *****************************/ 26 void InitIO(void) 27 { 28 P1DIR |= 0x13; //P10、P11、P14定义为输出 29 LED1 = 1; 30 LED2 = 1; 31 LED3 = 1; //LED灯初始化为关 32 } 33 /*************************** 34 //主函数 35 ***************************/ 36 void main(void) 37 { 38 InitIO(); //初始化LED灯控制IO口 39 while(1) //死循环 40 { 41 LED1 = !LED1; // LED1灯闪一次 42 Delay(10000); 43 LED2 = !LED2; // LED2灯闪一次 44 Delay(10000); 45 LED3 = !LED3; // LED3灯闪一次 46 Delay(10000); 47 48 } 49 }
这一段代码为流水灯的效果,我的这块底板上刚好有3个灯,就升级了一下实例代码