笔者正在进行基于芯片为CC2530的zigbee模块的开发工作。本文是笔者基于网络上现有的zigbee学习资料进行学习时的总结,目的是记录自己学习zigbee的历程,同时作为笔记进行分享。
以下三篇转载文章帮助入门zigbee开发
(1)zigbee概念与认识:
Zigbee入门概念及背景知识_zigbee背景-CSDN博客
(2)zigbee开发资料参考:Zigbee学习准备工作(相关软件和Zigbee学习资料下载)_zigbee通信技术资料下载-CSDN博客
(3)zigbee开发工具安装参考:2、ZigBee 开发教程之基础篇—Zigbee 开发平台的构建_zigbee用什么软件写-CSDN博客
一、IO口设置
本文使用的zigbee模块的通用IO有21个,分别为P0_0-P0_7、P1_0-P1_7、P2_0-P2_4。一般的,IO即可以通用的输入输出口,同时也可以复用外设口(计数、外部中断功能等)。
1、认识三类寄存器
(1)PxSEL寄存器(x=0、1),配置IO口是普通输入输出IO,还是做片上外设口;
(2)PxDIR寄存器(x=0、1),配置IO口的输入输出方向;
(3)PxINP(x=0、1)寄存器,用于配置IO口组的上拉模式或者三态模式;P2INP寄存器,配置IO口的上拉、下拉模式。
二、点亮一个LED灯
点亮一个LED灯,等于是设置一IO作为普通输出口,并控制它的输出状态值即可。
1、LED灯原理图
2、代码
//闪烁一个LED灯
#include <iocc2530.h>
#include "zfm.h"
#define led0 P1_0 //led灯宏申明
void init_led0()
{
P1SEL &= 0xfe; //设置LED对应GPIO口的工作模式
P1DIR |= 0x01; //设置输入输出模式
//P1INP和P2INP使用默认即可,也可手动确保配置
}
void main()
{
init_led0();
while( 1 )
{
led0 = ~led0 ;
delayms( 500 );
}
}
在开发工具编译下载到zigbee开发板运行,观察现象