官方淘宝店 易迪拓培训 旧站入口
首页 > 手机设计 > 手机测试交流 > 关于AT指令的编程,请高手帮忙

关于AT指令的编程,请高手帮忙

05-08
我在超级终端上能读到IMEI,可在编程中读不到
,请高手指点一下。
我写的程序如下:
RS232Error =OpenComConfig (com_port_imei,, devicename, 57600, 0, 8, 1, 512, 512 );
Fmt(write_buffer_imei,"%s<%s","AT+EGMR=0,7\r");
RS232Error_imei =ComWrt (com_port_imei, write_buffer_imei,strl(write_buffer_imei));
Delay(0.5);

RS232Error_imei = ComRd (com_port_imei, read_buffer_imei, 30);
FlushInQ (com_port_imei);
看到 read_buffer_imei总为空呢
期待中。

我在超级终端上能读到IMEI,可在编程中读不到
,请高手指点一下。
我写的程序如下:
RS232Error =OpenComConfig (com_port_imei,, devicename, 57600, 0, 8, 1, 512, 512 );
Fmt(write_buffer_imei,"%s<%s","AT+EGMR=0,7\r");
RS232Error_imei =ComWrt (com_port_imei, write_buffer_imei,strl(write_buffer_imei));
Delay(0.5);

RS232Error_imei = ComRd (com_port_imei, read_buffer_imei, 30);
FlushInQ (com_port_imei);
看到 read_buffer_imei总为空呢
期待中。

你设的延时太短了吧,只有0.5MS吗,改为500或者1000看看

Delay(0.5);
是0.5S

读缓冲区的字节长度加足够大试试?

检查过你write_buffer_imei里面的东西没有?
实际ascii里面的回车包括linefeed and carriage return,也就是回车,换行, 对应ascii表为0x15,0x12

5楼的兄弟能否说的详细些

cylbailey 的意思是,要你用单步调试在RS232Error_imei =ComWrt (com_port_imei, write_buffer_imei,strl(write_buffer_imei)); 设一个断点,看write_buffer_imei里面有没有AT+EGMR=0,7\r字符!

有的

你设的延时太短了吧,只有0.5MS吗,改为500或者1000看看

Delay(0.5);
是0.5S

读缓冲区的字节长度加足够大试试?

检查过你write_buffer_imei里面的东西没有?
实际ascii里面的回车包括linefeed and carriage return,也就是回车,换行, 对应ascii表为0x15,0x12

5楼的兄弟能否说的详细些

cylbailey 的意思是,要你用单步调试在RS232Error_imei =ComWrt (com_port_imei, write_buffer_imei,strl(write_buffer_imei)); 设一个断点,看write_buffer_imei里面有没有AT+EGMR=0,7\r字符!

有的

可能是串口没有接收到信息呢。你看看发送的信息BB有没有收到,我就遇到串口IO重叠问题,能收不能发,你都没有发送出去,所以就接不到了

可能是波特率错了,换其它的波特率看看,比如115200。

须提前对串口进行清空,还要检查一下你所设置的变量类型有无错误.

首先保证ATE!=0
RS232Error =OpenComConfig (com_port_imei,, devicename, 57600, 0, 8, 1, 512, 512 ); // u多了一个逗号
//增加FlushOutQ(comport);
Fmt(write_buffer_imei,"%s<%s","AT+EGMR=0,7\\r");
RS232Error_imei =ComWrt (com_port_imei, write_buffer_imei,strl(write_buffer_imei)); //得到长度的函数错误, strlen();
Delay(0.5);
RS232Error_imei = ComRd (com_port_imei, read_buffer_imei, 30);//把30改成 strlen(read_bufer);
FlushInQ (com_port_imei);

Top