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

查看: 2601|回复: 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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版