前面gprs网络连接等都没问题,就是在at%ipsend发送数据,不能直接发送字符,好像要经过转换,这个方面我不太清楚,求高手解答。
at%ipsend="ffffffff"是可以发送的,这是什么数据格式?有么有直接发送字符的方法?
它是将其转换为十六进制发送的,"ffffffff"发送出去的含义就是0xff,0xff,0xff,0xff
据我了解,应该是不能直接发送字符的。
你可以另外写个转换函数,将字符按ASCII码转换,你可以上网下载吧,应该有这种代码。我这只有处理数字的,没有完整的
我刚找了个,有个简单转换的,你要不,仅仅是字母和数字的
呵呵,发给我啊,orange.ssssss@163.com
不过我还是希望有直接发送字符的方法,
sim300就可以用,好像有个at指令直接发送字符
我没用过那款模块,就不清楚了,已经把那个函数给你发了
刚查了下资料,at%iomode=0,1,1,就可以直接传输字符了
不过还是感谢你啊
回复 楼主 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');
}
}
}
上面的内容仅供参考