资源简介
代码中包含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个文件信息
相关资源
- CC2530_spi通信
- 组态王 单片机 通讯协议
- cc2530基础实验代码
- CC2530+OLED电压信号模拟信号显示串口传
- 基于ZIGBEE技术的智能公交视频监控系
- CC2530 DMA读写
- 51CTO-zigbee开发套件DTD243A_Demo用户手册
- GPIO输出控制实验-控制Led亮灭
- CC2530 的 ZigBee 的温度监控系统 课程设
- 组态王6.55卸载工具
- 基于ZigBee的大棚无线温度监测系统.
- zigbee组网流程图
- CC2530特殊功能寄存器
- cc2530 zigbee通讯程序
- 挺好还有液晶基于ZigBee的无线网络系
- CC2531 USB dongle 驱动 64位
- CC2530原理图元件库.zip
- cc2530 Uart1
- ZigBee CC2530,基础实验的代码汇集
- 基于ZigBee + HXD019D 的万能红外转发器
- DDE通讯在_组态王_中的应用
- 组态王例程
- CC2530单片机ADXL345的i2C程序
- TI Z-Stack中的OSAL纯净版
- ZigBee CC2530 12864液晶串行程序
- 6层电梯组态王.rar
- CC2530产生随机数修正版
- zigbee 2.4G PCB天线封装 有两个不同天线
- 基于ZigBee的路灯控制系统
- 组态王加入海康监控摄像头
评论
共有 条评论