2821|0

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于编写zigbee中温度数据采集传输的问题 [复制链接]

本人在校学生,前段时间有个老师给我几块天运科技的2430,发现自学起来比较吃力,不知道从哪下手,没有顺序。现在想自己搞个通过点对点通信传送温度数据,这个过程中发现模块总是无故出现问题,总结以后发现,涉及等待晶振稳定的部分出了问题。只要注释掉这句就好了while(!XOSC_STABLE); 但貌似板子上找不到问题,不知道怎么回事。

再说回前头提到的,我在发送数据的时候发现串口接受到的总不如意,我也不知道怎么改,先贴出代码。
/****************************************************************
*函数功能 :串口发送字符串函数     *
*入口参数 : data:数据      *
*     len :数据长度            *
*返 回 值 :无              *
*说    明 :       *
****************************************************************/
void UartTX_Send_String(char *Data)
{
  char j;
  for(j=0;j<10;j++)
  {
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
  }
}
void UartTX_Send_word(char word)
{
    U0DBUF = word;
    while(UTX0IF == 0);
    UTX0IF = 0;
}
/****************************************************************
*函数功能 :接收 *
****************************************************************/
void receiveMode(void)
{
   BYTE* receiveBuffer;
   BYTE length;
   BYTE res;
   BYTE sender;
   char tt[10];
   while(1)
   {
      LED1 = LED_ON;
      res = radioReceive(&receiveBuffer, &length, RECEIVE_TIMEOUT, &sender);
      LED1 = LED_OFF;
      //for(l=0;l<5;l++)
      //tt[l]=*receiveBuffer++;
      //sprintf(tt,(char *)"%dC",receiveBuffer);
      
      if(res == TRUE)
      {
         LED2 = LED_ON;
         UartTX_Send_String(receiveBuffer);
         UartTX_Send_word(0x0A);
         halWait(200);
      }
      else
      {
         LED2 = LED_OFF;
         halWait(200);
      }
     LED2 = LED_OFF;
   }
}
/****************************************************************
*函数功能 :发送 *
****************************************************************/void contionuousMode(void)
{
   BOOL res;
   BYTE sendBuffer[1]="hello";
   //BYTE i;
                                 //问题是这里,发送部分目前发送hello是成功的,但如果像现在
   while(1)                  //这样,假如去掉注释,对sendBuffer赋值,输出的结果就乱了
   {                            //我想让最后输出的是字符串格式,因为最后要输出温度值的嘛   
     //i=9;             //不然串口助手输出会变成ascii码的结果,不知道这个问题怎么解决   
//sendBuffer[0]=i;
      LED2 = LED_OFF;
      LED1 = LED_ON;
      res = radioSend(sendBuffer, sizeof(sendBuffer), remoteAddr, DO_NOT_ACK );
      halWait(200);
      LED1 = LED_OFF;
      
      halWait(200);
      if(res == TRUE)
      {
         LED2 = LED_ON;
         halWait(200);
      }
      else
      {
        LED2 = LED_OFF;
        halWait(200);
      }
   }
}
此帖出自RF/无线论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表