[Zigbee] zigbee串口通信机制问题

小小镇   2013-6-1 14:41 楼主
各位朋友,我想问下zigbee中的串口通信机制是如何的?我所研究的项目是用zigbee中的单片机CC2530控制GSM模块发送和接收信息。因为GSM控制涉及的指令的发送,每条指令执行成功与否都与前一条指令执行成功与否有关。但是我用zigbee通过串口控制GSM时,所有指令都会全部一起通过串口发送出去,就类似串口将一个程序的每一条串口发送程序的数据存储在缓存区,然后通过串口全部一起发送出去了。请问如何改变这种发送方式呢。我尝试过用定时函数发送,例如:
{
  static uint8 i=0;
  while(i<12)
  {
    switch(i)
    {
    case 5:
      HalUARTWrite(0,at_f,4);
      HalUARTWrite(0,enter,2);
      break;
    case 6:
      HalUARTWrite(0,at_test,2);
      HalUARTWrite(0,enter,2);
      break;
    case 7:
      HalUARTWrite(0,at_cmgf,9);
      HalUARTWrite(0,enter,2);
      break;
    case 8:
      HalUARTWrite(0,at_csca,22);
      HalUARTWrite(0,enter,2);
      break;
    case 9:
      HalUARTWrite(0,at_cmgs,19);
      HalUARTWrite(0,enter,2);
      break;
    case 10:
      HalUARTWrite(0,msg,5);
      break;
    case 11:
      HalUARTWrite(0,one_A,1);
      HalUARTWrite(0,enter,2);
      break;
    }
    i++;
    if(i>=12)
      i=12;
  }
}
然后在协调器程序用osal_start_timerEx(GenericApp_TaskID,GSM_RUNNING_EVENT,2000);定时发送,能成功。但是会与其他需要用到串口的数据冲突。我的想法是想让每条指令都在GSM.C的文件中通过延时一条一条发送出去,而不是一下子把全部的指令一起发送出去。这样我的gsm执行指令不能成功。
请问各位朋友有解决的办法吗?

[ 本帖最后由 小小镇 于 2013-6-1 14:42 编辑 ]

回复评论 (1)

试试Tinyos吧,我搞zigbee三年了,从不用zstack,原因不说了
欢迎加入贴吧
http://tieba.baidu.com/f?kw=tinyos%C4%A3%BF%E9&fr=index&fp=0
里面有QQ群,QQ群理由资料和源码
点赞  2013-6-3 14:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复