单片机驱动GSM模块,遇到了个很棘手的问题!【已解决】

2019-07-28 18:37发布

本帖最后由 512826028 于 2015-1-25 23:06 编辑

单片机是 MSP430F149  
GSM模块是 SIM900A

程序中 单片机单独发送  AT指令,可以得到OK答复,单片机点亮第一个LED灯。

单片机单独发送ATE0指令,也可以得到OK答复,单片机点亮另一个LED灯。

但是,如果让单片机按顺序,先发送AT指令,等到OK后,在发送ATE0指令,就不能继续运行了,第二个LED就一直都点不亮了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
guangbiao
2019-07-30 07:08
while(strstr((char const*)USART1BUFF,"OK")==NULL)
    {
        UART_Clear_BUFF();
        led(2);
        //注意:此处必须为RNRN!!!
        UART_PutStr(0,"AT ");
    }
这两个类似的循环会出大问题的:
1.只要判断没有“OK”就清接收缓存,如果我刚收到一个'O',后面的字节还没有收到时,缓存就被冲刷了。
2.只要判断没有“OK”,就一直重发相应AT命令。你这是在测试GSM模块的串口接收缓冲区有多大吧!!!!!!

一周热门 更多>