工具/软件:Code Composer Studio
HII... 我目前正在从事一个为工业目的设计的项目。 但我对 XBee 正常模式有一些问题。 因此我计划将其更改为 API 模式。
如果有人拥有 XBee 的头文件。 请告诉我、这对我的项目很有用
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
HII... 我目前正在从事一个为工业目的设计的项目。 但我对 XBee 正常模式有一些问题。 因此我计划将其更改为 API 模式。
如果有人拥有 XBee 的头文件。 请告诉我、这对我的项目很有用
我实际上解决了这个问题。 对此代码有任何更改或建议请告诉我... 代码如下所示
unsigned char gbee API (volatile char * ptr)
{
gbee 格式;
unsigned int m=0;
unsigned char i=0;
unsigned char j=0;
//13unsigned char l=0;
unsigned char z=0;
unsigned int length = 0;
长度=0x0E + t_l;
format.delimiter = 0x7E;
API_FRAME[z]= format.delimiter;//格式的起始字节(定界符)
Z++;
format.length[0]= length & 0xFF00;
api_frame[z]= format.length[0];//长度的 MSB 字节(格式数据的长度
Z++;
format.length[1]= length & 0x00FF;
api_frame[z]= format.length[1];//长度的 LSB 字节
Z++;
format.frame_type = 0x10;
api_frame[z]= format.frame_type;//帧类型
Z++;
format.frame_id = 0x01;
api_frame[z]= format.frame_id;//帧的 ID
Z++;
format.dest_addr64[0]=(mac_address >>(8*7))& 0xff;//目标64位的 Mac 地址
format.dest_addr64[1]=(Mac_address >>(8*6))和0xff;
format.dest_addr64[2]=(Mac_address >>(8*5))和0xff;
format.dest_addr64[3]=(Mac_address >>(8*4))和0xff;
format.dest_addr64[4]=(Mac_address >>(8*3))和0xff;
format.dest_addr64[5]=(Mac_address >>(8*2))和0xff;
format.dest_addr64[6]=(Mac_address >>(8*1))和0xff;
format.dest_addr64[7]=(Mac_address >>(8*0))和0xff;
for (i=0;i<8;i++)
{
M += format.dest_addr64[i];
API_FRAME[z]= format.dest_addr64[i];// TX ->数据
Z++;
}
format.dest_addr16[0]= 0xFF;//目的地址16位
format.dest_addr16[1]= 0xFE;
for (j=0;j<2;j++)
{
M +=format.dest_addr16[j];
API_FRAME[z]= format.dest_addr16[j];// TX ->数据
Z++;
}
format.brod_rad = 0x00;//
API_FRAME[z]= format.brod_rad;// TX ->数据
Z++;
format.option = 0x00;
api_frame[z]=format.option;// TX -> data
Z++;
//strcpy (*j->rf_data、ptr);
volatile unsigned int k;
对于(k=0;k<=(t_l-1);k++)
{
format.rf_data[k]= ptr[k];
m += format.rf_data[k];
api_frame[z]= format.rf_data[k];// TX -> data
Z++;
// format.length++;
}
//format.rf_data[t_l]='\0';
m=m+format.frame_id + format.frame_type + format.brod_rad + format.option;
M = 0xFF & m;
format.cheksum = 0xFF - m;
API_FRAME[z]= format.cheksum;// TX ->数据
Z++;
for (i=0;<z;i++))
{
字符数据;
data=api_frame[i];
while (!(UCA0IFG&UCTXIFG));
UCA0TXBUF = DATA;// TX -> DATA
}
返回0;
}