向串口发送AT指令的问题,虚心向高手请教!

DragonSword 2006-05-11 12:24:45
串口打开后,发送AT指令如下:
sprintf(cmd,"AT\r");
WriteComm(cmd,strlen(cmd));
ReadComm(temp,20);
返回值是"OK"后面跟一些乱码类似“烫烫烫烫烫烫?<B%”,不知哪位大虾可以指点一下。
...全文
379 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gdhyj 2006-05-27
  • 打赏
  • 举报
回复
楼主,可能是你打开的速率和Modem定义的不一样所致,你换不同的速率试试
xuyuanchu1016 2006-05-24
  • 打赏
  • 举报
回复
关注!
gdhyj 2006-05-24
  • 打赏
  • 举报
回复
确实是这样,我放卡后一切正常了,谢谢sss2002(冯铭) !
sss2002 2006-05-21
  • 打赏
  • 举报
回复
部分MODEM没有放 SIM 卡无法使用 AT 指令(部分是 CDMA 的,GPRS 的一般不会)
gdhyj 2006-05-12
  • 打赏
  • 举报
回复
老兄帮我试试不放SIM卡能不能支持这个命令?我以前用过GSM的,不记得不加卡能不能支持这个命令,现在在试CDMA的,没CDMA的卡,想知道能不能支持这个命令
gdhyj 2006-05-12
  • 打赏
  • 举报
回复
你的读缓冲区太小了吧?
memset(temp,0x00,200);
ReadComm(temp,200);
试试
DragonSword 2006-05-11
  • 打赏
  • 举报
回复
xichen你好,我用你指点的方法这样做:
if(ComOpen)
{
memset(cmd,0x00,20);
sprintf(cmd,"AT+CGMI\r");
WriteComm(cmd,strlen(cmd));
memset(temp,0x00,20);
ReadComm(temp,20);
AfxMessageBox(temp);
}
返回值是:
WAVECOME MODEM
?D
这又是为什么呢?怎么没有返回OK?
xichen 2006-05-11
  • 打赏
  • 举报
回复
sprintf(cmd,"AT\r");
WriteComm(cmd,strlen(cmd));

memset(temp,0x00,20);

ReadComm(temp,20);
Leo 2006-05-11
  • 打赏
  • 举报
回复
实际上你只读回了2个字节其他的字符是接收缓冲以前的乱码,如果要解决这个问题,在每次读串口以前下清空接收缓冲,或者只取读到的字节来显示.

3,846

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 无线
社区管理员
  • 无线
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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