先上代码//sim900a初始化void sim900a_init(void)
{
if( sim900a_send_cmd("AT","OK",200)==0)
{
if(sim900a_send_cmd("ATE0","OK",200)==0)//不回显
{
if(sim900a_send_cmd("AT+CMGF=1","OK",200)==0)//设置文本模式
{
sim900a_send_cmd("AT+CSCS="GSM"","OK",200);//设置GSM字符集
sim900a_send_cmd("AT+CNMI=2,1","OK",200);//设置新消息提示
}
}
sim900a_send_cmd这个函数是原子哥的代码,发送函数也是原子哥的,问题是,现在 if( sim900a_send_cmd("AT","OK",200)==0)这个代码进不去,所以后面无法运行,经过调试发现,当stm32发送第一个指令AT的时候,第一次回复ok没有反应(其实回复什么都一样,只要任何东西都行),第二次回复ok程序就继续执行了,后面的指令也都只要回复一次OK,为什么这样啊,困扰好久了,麻烦各位大神帮帮忙。PS:后面的程序都可以完美运行,因为在串口助手上已经实现功能。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
问题是这样的,发送AT过去了,模块也回复OK了,但是,模块必须再次回复一下OK才行,可是在实际过程中不会再次回复ok了啊,第一次是这样,后面模块回复一次就可以了。
一周热门 更多>