GTM900数据通信问题,关于at%ipsend传输数据

xlwjp   2010-2-22 19:44 楼主
前面gprs网络连接等都没问题,就是在at%ipsend发送数据,不能直接发送字符,好像要经过转换,这个方面我不太清楚,求高手解答。

at%ipsend="ffffffff"是可以发送的,这是什么数据格式?有么有直接发送字符的方法?

回复评论 (9)

它是将其转换为十六进制发送的,"ffffffff"发送出去的含义就是0xff,0xff,0xff,0xff
点赞  2010-2-23 08:31
那我如何直接发送字符?
或者有没有转换代码?
点赞  2010-2-23 08:41
据我了解,应该是不能直接发送字符的。
你可以另外写个转换函数,将字符按ASCII码转换,你可以上网下载吧,应该有这种代码。我这只有处理数字的,没有完整的
点赞  2010-2-23 09:06
我刚找了个,有个简单转换的,你要不,仅仅是字母和数字的
点赞  2010-2-23 09:08
呵呵,发给我啊,orange.ssssss@163.com
点赞  2010-2-23 09:50
不过我还是希望有直接发送字符的方法,
sim300就可以用,好像有个at指令直接发送字符
点赞  2010-2-23 09:59
我没用过那款模块,就不清楚了,已经把那个函数给你发了
点赞  2010-2-23 10:27
刚查了下资料,at%iomode=0,1,1,就可以直接传输字符了
不过还是感谢你啊
点赞  2010-2-23 15:00

回复 楼主 xlwjp 的帖子

如果你初始化时 有下面的设置的话:在通过gtm900c送信前需要对数据进行转换,需要使用转换函数(hexData2Str)的:
AT%IOMODE=1,1,1

转换函数:
void hexData2Str(uint8 *hexData, uint8 *str, uint8 dataLen)
{
//big-endian
  uint8 i;
  uint8 *xad;
  uint8 ch;

    xad = hexData;

    for (i = 0; i < dataLen*2; xad++)
    {
      ch = (*xad >> 4) & 0x0F;
      str[i++] = ch + (( ch < 10 ) ? '0' : '7');
      ch = *xad & 0x0F;
      str[i++] = ch + (( ch < 10 ) ? '0' : '7');
    }
  }
}

上面的内容仅供参考
点赞  2012-11-23 16:01
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复