jielj_2008 发表于 2011-9-27 14:18:25

无线龙的radioSend(BYTE* transmitData, WORD dataLength, BYTE remoteAddress, BYT

radioSend(BYTE* transmitData, WORD dataLength, BYTE remoteAddress, BYTE doAck)这个函数中有如下一段代码

      if(remaining > SPP_MAX_PAYLOAD_LENGTH)   //如果超过了有效数据长度
      {
         memmove(txData.payload, transmitData + sent, SPP_MAX_PAYLOAD_LENGTH);
         txData.payloadLength = SPP_MAX_PAYLOAD_LENGTH;
         sent += SPP_MAX_PAYLOAD_LENGTH;
      }
      else
      {
         memmove(txData.payload, transmitData + sent, dataLength);
         txData.payloadLength = dataLength;
         sent += dataLength;
      }

else应该是一帧数据不足SPP_MAX_PAYLOAD_LENGTH时执行的,怎么这时又把dataLength赋值给了txData.payloadLength,感觉应该把剩下的未发送的数据数量remaining赋值给txData.payloadLength啊?盼望高手给解答一下!

my_avr 发表于 2011-9-27 15:18:11

貌似是有问题哦,等高手

jielj_2008 发表于 2011-9-27 17:09:09

回复【1楼】my_avr
-----------------------------------------------------------------------
它原来发送Hello word,接收发送都没问题,因为字符比较短一次就发送完了,后来我发送了一个长一点的字符串,然后把SPP_MAX_PAYLOAD_LENGTH这个宏改短了一些,让它一次发送不完,分多次发送,结果发送的数据就接收不到了,我觉得是发送最后一段字符时出问题了!还望研究过这个的高手帮助一下!!

610396783 发表于 2011-9-29 12:50:19

回复【楼主位】jielj_2008
-----------------------------------------------------------------------

我把他这里面的 doack去掉啦 效果是比较好的

jielj_2008 发表于 2011-9-29 16:00:27

回复【3楼】610396783
-----------------------------------------------------------------------

那它的else里面的程序你觉得有问题吗?
页: [1]
查看完整版本: 无线龙的radioSend(BYTE* transmitData, WORD dataLength, BYTE remoteAddress, BYT