当前位置:首页 > ZigBee相关笔记
数据发送AF-DataRequest函数:
afStatus_t AF_DataRequest( afAddrType_t * dstAddr, endPointDesc_t *srcEP, uint16 cID,
uint16 le n, uint8 *buf, uint8 *transID,
uint8 options, uint8 radius
)
MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID )
解释: (afIncomingMSGPacket_t *)是强制类型转换,SampleApp_TaskID包含的事件ID交给osal_msg_receive函数从消息队列上接受消息,并转换成afIncomingMSGPacket_t结构体类型并赋给MSGpkt
遇到问题:
1、电脑无法识别板子
解决方法:电池组供电,单纯靠USB供电不足
2、安装完USB转串口驱动后依然无法识别串口
解决方法:去掉仿真器直接将板子与PC相连
3、IAR编译问题
解决办法:
4、功放烧毁
原因:上电顺序,先上电再装天线会烧毁功放
5、自己定义头文件在IAR中编译时出现“Fatal Error[Pe1696]: cannot open source file”
解决方法:在IAR提供的头文件中缺少你定义的,可以使用#include \毕业设计\\程序\\5883L\\5883L test\\HMC5883.h\,用具体的地址来解决这个问题
6、IAR编译时出现“Error[Pe029]: expected an expression”
解决方法:定义问题,检查定义语句,#defien定义是不需要加”;”,但是typedef定义是必须要加”;”
7、在两个.C文件中使用同一个变量
解决方法:方案1:在一个文件中定义全局变量“类型 tmp;”,注意是全局变量。另一个文件全局变量的位置使用“extend 类型 tmp;”。
方案2:把hal.c文件里的函数参数加一个指向tmp的指针,tmp在main中,在hal.c里的文件使用tmp时,把地址传过去就行了。 例如: mian() { char tmp; }
function(&tmp;...;...); }
在hal.c里面
function(char *tmp;...;...) { }
8、串口输出浮点数
方法:定义结构体 union d{
unsigned char bytet[4]; float num; }floatnum;
对数据操作时用floatnum.num 发送数据时,用floatnum.bytet数组
且要注意大端小端问题,数据需要倒着存进去 floatnum temp; temp.cData[3]=0x40;
temp.cData[2]=0x13; temp.cData[1]=0x5D; temp.cData[0]=0x99;
9、串口输出乱码
解决方法:串口输出的是字符!
10、ADXL345读到的数用串口输出
串口输出时数组定义必须比要输出的多一位,用来保存结束符
共分享92篇相关文档