资源简介
代码中包含zigbee与组态王的通信协议,利用CC2530芯片开发

代码片段和文件信息
#include “kingview.h“
char RecFlagRecOK; //串口接收和接收完成标志
char ConvFlagReadFlag; //DS2438转换和读取数据标志
uchar T2CountRecCountByteCount; //T2定时器计数、串口接收字节计数、组态王通信的读写字节数
uint DatAdd; //组态王读写单片机地址
uchar RecBuf[22]; //串口接收数据暂存
uchar TBUF[16]; //串口待发送数据暂存
uchar byte[10];
uint word[10];
uchar const ASCII[]={‘0‘‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘A‘‘B‘‘C‘‘D‘‘E‘‘F‘};
/***********串口发送函数*********/
void DataSend(uchar outdata)
{
U0DBUF = outdata;
while(UTX0IF == 0);
UTX0IF = 0;
}
/***********Ascii码转换16进制数***********/
uchar AsciiToHex(uchar *StartAdduchar n)
{
uchar id;
for(i=0;i {
d<<=4;
if(StartAdd[i]>0x40) d=d+(StartAdd[i]-0x37);
else d=d+(StartAdd[i]-0x30);
}
return (d);
}
/**********校验接收到主机数据帧的CRC校验码********/
char ChackCRC(void)
{
uchar ixordatcrc;
crc=AsciiToHex(&RecBuf[RecCount-2]2);
for(i=0xordat=0;i xordat^=RecBuf[i];
RecCount=0;
if(crc==xordat) return 1;
else return 0;
}
/********主机读函数********/
void ReadData(void)
{ uchar icrc;
TBUF[0]=0x40;
TBUF[1]=RecBuf[0];
TBUF[2]=RecBuf[1];
TBUF[3]=RecBuf[8];
TBUF[4]=RecBuf[9];
for(i=ByteCount*2;i>0;i--)
{
if(ByteCount>1)
TBUF[ByteCount*2-i+5]=ASCII[(word[DatAdd-10]>>(i-1)*4)%16];
else
TBUF[ByteCount*2-i+5]=ASCII[(byte[DatAdd]>>(i-1)*4)%16];
}
for(i=1crc=0;i<=ByteCount*2+4;i++)
{
crc^=TBUF[i];
}
TBUF[ByteCount*2+5]=ASCII[crc/16];
TBUF[ByteCount*2+6]=ASCII[crc%16];
TBUF[ByteCount*2+7]=0x0d;
for(i=0;i DataSend(TBUF[i]);
}
/*******主机写函数********/
void WriteData(void)
{
uint idatcrc;
dat=AsciiToHex(&RecBuf[10]ByteCount*2);
if(ByteCount>1)
{
word[DatAdd-10]=dat;
}
else
{
byte[DatAdd]=dat;
}
TBUF[0]=0x40;
TBUF[1]=RecBuf[0];
TBUF[2]=RecBuf[1];
TBUF[3]=TBUF[4]=0x23;
crc=TBUF[1]^TBUF[2]^TBUF[3]^TBUF[4];
TBUF[5]=ASCII[crc/16];
TBUF[6]=ASCII[crc%16];
TBUF[7]=0x0d;
for(i=0;i<8;i++)
DataSend(TBUF[i]);
}
/******主机读写错误******/
void Error(void)
{
uchar icrc;
TBUF[0]=0x40;
TBUF[1]=RecBuf[0];
TBUF[2]=RecBuf[1];
TBUF[3]=TBUF[4]=0x2a;
crc=TBUF[1]^TBUF[2]^TBUF[3]^TBUF[4];
TBUF[5]=ASCII[crc/16];
TBUF[6]=ASCII[crc%16];
TBUF[7]=0x0d;
for(i=0;i<8;i++)
DataSend(TBUF[i]);
}
/****************************************************************
串口接收一个字符:一旦有数据从串口传至CC2530则进入中断,将接收到的数据赋值给变量temp.
****************************************************************/
#pragma vector = URX0_VECTOR
__interrupt void UART0_ISR(void)
{
uchar buf;
//if(URX0IF)
{
buf=U0DBUF;
//DataSend(buf);
if(RecFlag)
{if(buf==0x0d)
{
RecOK=1;
RecFlag=0;
}
else
{RecBuf[RecCount]=buf;
RecCount++;
}
}
if(buf==0x40) RecFlag=1;
URX0IF=0; //清中断标志
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 34257 2012-10-21 10:22 cc2530-组态王\Backup (2) of 串口收发数据.ewd
文件 55653 2012-10-21 12:36 cc2530-组态王\Backup (2) of 串口收发数据.ewp
文件 34257 2012-10-21 10:22 cc2530-组态王\Backup of 串口收发数据.ewd
文件 55653 2012-10-21 12:36 cc2530-组态王\Backup of 串口收发数据.ewp
文件 20244 2012-10-21 12:49 cc2530-组态王\Debug\Exe\串口收发数据.d51
文件 80927 2012-08-20 13:17 cc2530-组态王\Debug\Exe\串口收发数据.hex
文件 285767 2013-03-31 09:10 cc2530-组态王\Debug\Obj\kingview.pbi
文件 12345 2013-03-31 09:10 cc2530-组态王\Debug\Obj\kingview.pbi.cout
文件 48027 2012-10-21 12:49 cc2530-组态王\Debug\Obj\kingview.r51
文件 325196 2013-03-31 09:10 cc2530-组态王\Debug\Obj\串口收发数据.pbd
文件 325196 2013-03-31 09:10 cc2530-组态王\Debug\Obj\串口收发数据.pbd.browse
文件 271461 2013-03-31 09:10 cc2530-组态王\Debug\Obj\串口收发数据.pbi
文件 12349 2013-03-31 09:10 cc2530-组态王\Debug\Obj\串口收发数据.pbi.cout
文件 21523 2012-10-21 12:49 cc2530-组态王\Debug\Obj\串口收发数据.r51
文件 3068 2012-10-21 12:49 cc2530-组态王\kingview.c
文件 1210 2012-10-21 12:36 cc2530-组态王\kingview.h
文件 1743 2013-03-31 09:10 cc2530-组态王\settings\串口收发数据.cspy.bat
文件 4053 2013-03-31 16:02 cc2530-组态王\settings\串口收发数据.dbgdt
文件 893 2013-03-31 16:02 cc2530-组态王\settings\串口收发数据.dni
文件 4100 2013-03-31 16:01 cc2530-组态王\settings\串口收发数据.wsdt
文件 240 2013-03-31 09:12 cc2530-组态王\settings\串口收发数据_EncodingOverride.xm
文件 4865 2012-10-21 12:51 cc2530-组态王\串口收发数据.c
文件 3013 2012-11-25 12:43 cc2530-组态王\串口收发数据.dep
文件 34257 2012-10-21 10:22 cc2530-组态王\串口收发数据.ewd
文件 55653 2012-10-21 12:36 cc2530-组态王\串口收发数据.ewp
文件 202 2012-10-21 09:37 cc2530-组态王\串口收发数据.eww
文件 25 2013-03-31 16:02 cc2530-组态王\串口收发数据CustomSfr.sfr
目录 0 2012-10-21 10:22 cc2530-组态王\Debug\Exe
目录 0 2012-05-16 20:53 cc2530-组态王\Debug\List
目录 0 2013-03-31 09:10 cc2530-组态王\Debug\Obj
............此处省略6个文件信息
相关资源
- IAR7.20H破解机注册机
- cc2530寄存器手册
- 组态王驱动开发包3.0.0.7(中文)
- 组态王中S7-300TCP驱动
- 课程设计蔬菜大棚自动控制系统,包
- 组态王6.53树形控件实例
- 组态王6.55的S7-1500驱动
- 组态王7.5软授权补丁0425
- 组态王7.5授权
- 组态王工程
- 基于PIC的TCP/IP网络协议和zigbee无线传
- IEEE 802.15.4的CC2530无线数据收发设计
- IEEE 802.15.4的CC2530无线数据收发设计
- ZStack-CC2530-2.5.1a
- 基于Zigbee的土壤墒情监控系统设计
- 基于ZigBee的温室花房环境监测系统设
- 基于ZigBee温室环境监测系统电路设计
- 基于ZigBee和ARM技术的森林火情监测系
- 基于ZigBee的温湿度监控系统设计
- 基于ZigBee技术的智能家居无线网络系
- 基于PLC、GPRS以及ZigBee的路灯无线控制
- 基于ZigBee无线传感网络的托辊卡死故
- 基于ZigBee无线传感器网络的井下环境
- 基于ZigBee无线网络的气体监测报警系
- 基于ZigBee和GIS的井下人员定位系统的
- 基于ZigBee的车间环境监测系统的设计
- 基于ZigBee技术的矿井智能头盔
- 无线传感网络在瓦斯智能监控系统的
- 基于ZigBee的智能瓦斯报警矿灯设计
- 基于CAN总线与ZigBee的瓦斯实时监测及
评论
共有 条评论