資源簡介
代碼中包含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個文件信息
評論
共有 條評論