-
用VC的MFC做过,但是感觉VB应该和VC差不太多吧,就是串口控件。
比如说设置以下:
UpdateData(true);
m_MSComm.SetCommPort(PORT); //初始化端口
m_MSComm.SetInBufferSize(1024); //接收缓冲区
m_MSComm.SetOutBufferSize(512); //发送缓冲区
m_MSComm.SetInputMode(1); //读取二进制格式的数据
if(!m_MSComm.GetPortOpen())
{
m_MSComm.SetPortOpen(true);
}
if(m_MSComm.GetPortOpen())
{
SetTimer(TIMER1,1000,NULL);//安装定时器,并将其时间间隔设为1000毫秒----------->定时器初始化~~
}
m_MSComm.SetSettings("57600,n,8,1"); //设置波特率等
m_MSComm.SetRThreshold(3); //接收到一个字符就触发OnComm事件
m_MSComm.SetInputLen(0); //读取缓冲区内所有数据
void CZigBee_PCDlg::OnCommMscomm1()
{
// TODO: Add your control notification handler code here
UpdateData(true);
VARIANT variant_inp;
COleSafeArray safearray_inp;
static UINT uintid;
static int inttemp;
char stringid[6];
char stringtemp[6];
//static int arrylen;
long i=0,j=0,l=0;
int len;
int flag;
char rxdata[1000];
//arrylen = 0;////////////////////////////////////初始化?????
static BYTE arr[10];
if(m_MSComm.GetCommEvent()==2)
{
//以下接收串口数据
variant_inp=m_MSComm.GetInput();
safearray_inp=variant_inp;
len=safearray_inp.GetOneDimSize();
for(i=0;i
-
终端加入一个协调器建立的网络后,将终端移走,离开协调器覆盖的网络,即可离开那个网络,此时终端节点成为孤立节点。如果在这个节点附近在放一个协调器附近,便可加入后者网络。
一般情况下,一个网络只可以存在一个协调器,它负责建立起网络,管理网络,接收终端或路由传来的信息。相邻很近的两个协调器是没有意义的~
-
好滴,谢谢您的建议,我努力试试看~~
-
不用这个也可以啊 反正就是ZigBee协议栈,想办法路由收到协调器信息就好,谢谢大师~~
-
可以换啊~但是人家给的例程都是按照32M给的,所以不宜换晶振。再者说,32M的晶振工作频率快一些,所以说还是不宜换小的~
-
设置一下路由深度,百度一下怎么设置路由深度,修改一下就好了
-
编程环境为 IAR ,用类似JTAG的下载器在线下载就好
-
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////----->DS18B20部分程序 EndDevice
void TempDelay(unsigned int us){
while(us--);
}
void Init18b20 (void)
{
P0DIR |= 0x02; //P0_1输出
D18B20=1;
TempDelay(5);
D18B20=0;
TempDelay(1280); //delay 480--960 uS// 1280 stand for 480 us
D18B20=1;
TempDelay(106); //delay 15--60 uS// 106 stand for 40 us
P0DIR &= ~0x02; //P0_1 输入 对于CC2530芯片
if(D18B20==0) //读DS18B20的状态
flag = 1; //detect 1820 success!
else
flag = 0; //detect 1820 fail!
TempDelay(500); //60---240 us
P0DIR |= 0x02;
D18B20 = 1;
}
void WriteByte (unsigned char wr) //单字节写入
{
unsigned char i;
for (i=0;i>= 1;
}
}
unsigned char ReadByte (void) //读取单字节
{
unsigned char i,u=0;
for(i=0;i>= 1;
D18B20 = 1;
P0DIR &= ~0x02;
if(D18B20==1) //读取DS18B20的状态
u |= 0x80;
TempDelay (40);///////////////////////////////////////////读取的时候延时准确性很重要
}
return(u);
}
void read_bytes (unsigned char j) //什么时候用这个函数 有什么作用~
{
unsigned char i;
if(flag==1)
{
for(i=0;i
-
朋友,想请教你们个问题:ZigBee中,如何设置协调器来控制路由?
我学习ZigBee挺长时间了,只研究过采集数据,通过路由给协调器。可是,协调器要控制路由需要做什么设置或写什么样的代码呢?
我用的是 CC2530~
这个问题困扰我好久了~~ 求解!!