你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 2567|回复: 0

stm32w108该如何设置组网发送字符串?请教各位大侠!

[复制链接]

5

主题

7

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2011-6-16 15:32:18 | 显示全部楼层 |阅读模式
    在SimpleMAC自带的的 talk.c 里,实现的是串口聊天程序。在两个PC机端各自输入什么对方就接受什么。但这个程序时点对点的,PAN ID已设定一致,即:  ST_RadioSetNodeId(0x1604);
                                               ST_RadioSetPanId(0x1604);
    我现在要想组网,各个节点往协调器发送自己UART接受的数据。参考 talk.c,我的程序如下。但还是没有实现,有劳GGJJ帮忙看一下,在此先谢了!
void sendSerialData(u8 length, u8 *data)    //节点向SUN发送数据
{
  u8 packet[128];
  //Length
  packet[0] = (length + 11 + 2);
  packet[1] = FCF_DATA + FCF_ACKREQ + FCF_INTRAPAN;
  packet[2] = FCF_SHORTDST + FCF_SHORTSRC;
  //New sequence number
  currSeqNum++;
  packet[3] = currSeqNum;
  //dst PAN ID
  packet[4] = (ST_RadioGetPanId()>>0)&0xFF;
  packet[5] = (ST_RadioGetPanId()>>8)&0xFF;
  //Short dst addr
  packet[6] = (0xFFFF>>0)&0xFF;
  packet[7] = (0xFFFF>>8)&0xFF;
  //Short src addr
  packet[8] = (ST_RadioGetNodeId()>>0)&0xFF;
  packet[9] = (ST_RadioGetNodeId()>>8)&0xFF;
  //payload type
  packet[10] = PT_GENERIC_DATA;  //一般数据包类型
  
  packet[11] = PT_CHARS;                   //字符串标志
  halCommonMemCopy(packet+11, data, length);
 
  txComplete = FALSE;
 
  enqueueTxPacket(TRUE, 0xFFFF, packet, 0);
}/* end sendSerialData() */

  switch(packetType) {                                            //SUN接受到数据并输出
    case (GENERIC_DATA_PACKET): //executes on SUN and PLANET
      RX_DETAILS(printf("GENERIC_DATA_PACKET\r\n");)
      
    if(rxData.packet[payloadStart+1]==PT_CHARS){      //字符串标志的
        for(i=12;1
回复

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版