STM8与SIM900A串口通信问题(AT指令)

2019-03-23 18:26发布

本帖最后由 chenyt 于 2015-3-26 00:17 编辑

本人在做SIM900A与stm8的串口通讯,UATR3与电脑连接,UART1与SIM900连接,用串口调试软件发AT指令,SIM900的返回信息再由UART3返回电脑,在调试时发现,程序中的其他AT指令都可以返回OK值,可是AT+CPBR(查找电话簿)返回值却是ERROR,用串口调试软件直接发AT指令能得到OK值,请教是什么原因。

      u8 Read_Adr[10]="AT+CPBR=1 ";// 读电话簿
      UART1_SendString(Read_Adr, 10);

              Delay(100000);

               UART3_SendByte(uart_p);





//          u8 Msg1[10] = SMSCMGF;

       u8 Msg1[10] = "AT+CMGF=1 ";//选择短信格式 此指令能返回OK

//        u8 Msg1[10] = "AT+CPBR=1 ";//如果把上一行的指令替换为此指令,则返回ERROR

        UART1_SendString(Msg1, 10);

        Delay(100000);

        UART3_SendString("normal1 ",8);


以下为调试程序显示,红 {MOD}部分为程序运行,蓝 {MOD}部分为由调试软件直接发AT指令







此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
zhaojun_xf
1楼-- · 2019-03-24 03:45
 精彩回答 2  元偷偷看……
chenyt
2楼-- · 2019-03-24 08:13
AT指令集看过了,我通过程序发AT+CPBR指令返回值就不正确,可是其他指令就正常,用串口程序发相同的指令就有返回,
zhaojun_xf
3楼-- · 2019-03-24 10:18
认真对比,一定是有区别的,有没有字母弄错,或者少了什么?
zhaojun_xf
4楼-- · 2019-03-24 15:02
 精彩回答 2  元偷偷看……
zhaojun_xf
5楼-- · 2019-03-24 17:36
这里一般不这样定义:
u8 Msg1[10] = "AT+CMGF=1 ";//选择短信格式 此指令能返回OK
而是
u8 Msg1[] = "AT+CMGF=1 ";//选择短信格式 此指令能返回OK
chenyt
6楼-- · 2019-03-24 23:20
谢谢,已解决,前面延时太短,可能SIM还没有完全准备好。加长延时OK。

一周热门 更多>