向串口上的gsm模块发送命令的问题

teatool 2007-06-13 07:17:22
如题,向串口发送命令没问题,接收的时候有点问题,返回的数据的第一行总是发送的命令,也就是说相当于命令回显一样,然后正常的返回结果在第三行,第二行是个空行,但用超级终端测试的时候就没有问题。
请问这是怎么回事?
我用的是Victor串口控件。
...全文
237 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
睿音 2007-08-21
  • 打赏
  • 举报
回复
用ATE0关掉回显,正常情况可以用AT&W把关闭回显的状态存起来。AT命令都会是以/r/n结尾。所以会空行。有的命令也会以/r/n开始。分析hex的数据可以仔细的发现at命令的问题。
wz 2007-07-09
  • 打赏
  • 举报
回复
EagleFew(死牛之祭) 正解!
EagleFew 2007-06-13
  • 打赏
  • 举报
回复
这样是没有关系的!

你只要检查OK 或者 ERROR 关键字就可以了!

ATE0 这个命令可以关闭回显
huzhangyou 2007-06-13
  • 打赏
  • 举报
回复
这个没有错

的确是如此

你可以使用自己操作的方法进行处理掉
teatool 2007-06-13
  • 打赏
  • 举报
回复
比如我发送AT,超级终端返回的只是OK,但我的程序接收到的是
AT

OK
连发送的命令都显示出来了
teatool 2007-06-13
  • 打赏
  • 举报
回复
//TODO: 获取命令返回结果并显示出来
char Buf[8192]; //收到的字节数不会超过串口缓存的容量, 所以分配一个缓存容量相同的Buf
strcpy(Buf,"");
int n = YBCOM->Read(Buf,8192); //收到 n 个字节
AnsiString s=Buf;
s.SetLength(n);
s.Trim();
Memo2->Lines->Add("\""+s+"\"");

YBCOM就是Victor串口控件
i_love_pc 2007-06-13
  • 打赏
  • 举报
回复
你是如何接收的,可否贴一段代码出来!
huzhangyou 2007-06-13
  • 打赏
  • 举报
回复
如果你需要更好的控制
完全可以自己封装一个串口类
我想写起来应该不会太难

Victor的类我没有使用过
所以也无法提供什么可用的信息
我不懂电脑 2007-06-13
  • 打赏
  • 举报
回复
AT命令是要返回AT的

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧