本帖最后由 陌路绝途 于 2015-11-8 11:05 编辑
本次使用的无线模块是zigbee模块。再次开贴对于zigbee的模块使用以及调试做一个详细的解说。
Zigbee简介
物联网→传感器→无线传感器网络→Zigbee。
Zigbee调试器驱动安装 首先下载 SmartRF驱动 并解压到某一文件夹内,然后按 Zigbee开发板 → 调试器 → PC的USB接口 的顺序连接设备,打开计算机的设备管理器,会发现存在“无法识别的USB设备”,右键,点击“更新驱动程序软件”,选择“浏览计算机以查找驱动程序软件”,然后选择下载的驱动的文件夹路径,点击“下一步”,就可以成功安装驱动。
使用TI提供的IAR软件编写一个小程序来测试下我们的zigbee模块:最简单的LED灯开始吧。。
定义LED引脚 查看开发板电路图,如下所示:
可知led1~4分别受引脚P1_0~P4_0的控制,因此可以定义 led1、led2、led3、led4 分别为引脚 P1_0、P2_0、P3_0、P4_0。
#define led1 P1_0 //定义LED1为P1_0口控制
#define led2 P1_1 //定义LED2为P1_1口控制
#define led3 P1_2 //定义LED3为P1_2口控制
#define led4 P1_3 //定义LED4为P1_3口控制
main函数
接下来,开始编写main函数。
首先,在使用P1.0~P1.4端口前,需对其工作方式以及输入/输出方向进行设置,其中涉及到两个SFR:P1SEL、P1DIR。
P1SEL = 0x00; //设置P1为普通 I/O 口
P1DIR |= 0x0F; //设置P1.0 P1.1 P1.2 P1.3 为输出
Zigbee 小贴士
CC2430具有 P0_0 ~ P0_7 , P1_0~P1_7 , P2_0~P2_7 共21个I/O口。它们可作为通用数字I/O,也可用于连接ADC、定时/计数器或USART等外设IO。
CC2430的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口时需配置,若缺省,则取系统默认值。
然后初始化4个LED灯,设为全灭:
led1 = 1;
led2 = 1;
led3 = 1;
led4 = 1;
最后,编写LED灯闪烁效果代码:
led1 = 0; //led1闪烁
Delay(10);
led1 = 1;
Delay(10);
led2 = 0; //led2闪烁
Delay(10);
led2 = 1;
Delay(10);
led3 = 0; //led3闪烁
Delay(10);
led3 = 1;
Delay(10);
led4 = 0; //led4闪烁
Delay(10);
led4 = 1;
Delay(10);
其中涉及到一个延时子函数Delay(unsigned char n):
void Delay(unsigned char n)
{
unsigned char i;
unsigned int j;
for(i = 0; i < n; i++)
for(j = 1; j; j++)
;
}
(5)代码总览
将上述代码合并为一个整体,如下所示:
//引入头文件
#include //引入CC2430所对应的头文件(包含各SFR的定义)
//定义LED引脚
#define led1 P1_0 //定义LED1为P1_0口控制
#define led2 P1_1 //定义LED2为P1_1口控制
#define led3 P1_2 //定义LED3为P1_2口控制
#define led4 P1_3 //定义LED4为P1_3口控制 //延时子程序
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 |= 0x0F; //设置P1.0 P1.1 P1.2 P1.3 为输出
led1 = 1; //初始化,4个led灯全熄
led2 = 1;
led3 = 1;
led4 = 1;
while(1) //开始循环
{
led1 = 0; //led1闪烁
Delay(10);
led1 = 1;
Delay(10);
led2 = 0; //led2闪烁
Delay(10);
led2 = 1;
Delay(10);
led3 = 0; //led3闪烁
Delay(10);
led3 = 1;
Delay(10);
led4 = 0; //led4闪烁
Delay(10);
led4 = 1;
Delay(10);
}
}
按 Zigbee开发板 → 调试器 → PC的USB接口 的顺序连接Zigbee设备,然后选择Project -> Debug,程序就会被自动下载到开发板中。