OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3564|回复: 2

GSM模块如何实现发送一条短信给手机后检测是否接收到短信?

[复制链接]

24

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-4-9
在线时间
25 小时
发表于 2018-5-15 13:18:26 | 显示全部楼层 |阅读模式
1金钱
main()
{
    Set_Text_Mode1();     //设置发送短信模式
    Send_Text_Sms1();            //发送短信“汽车发生震动”
    Set_Text_Mode3();//设置接收短信的模式
while(1)
{
        Check_New_Message();                    //检测是否收到短信,并执行相应操作
    }
}

发送模式函数如下

void Set_Text_Mode1(void)
{
    Second_AT_Command("ATE0","OK",3);                                          //取消回显   
    Second_AT_Command("AT+CMGF=1","OK",3);                                //设置TEXT模式
    Second_AT_Command("AT+CSMP=17,167,2,25","OK",3);   
    Second_AT_Command("AT+CSCS=\"UCS2\"","OK",3);        
}
void Send_Text_Sms1(void)
{

    Second_AT_Command("AT+CMGS=\"xxxxxxxxx\"",">",3); //设置发送手机号,接收到“>”才发送短信内容
    UART2_SendString(content_1);     //发送短信内容
    USART_SendData(USART2 ,0X1A);  //发送结束符
  UART2_SendLR();
}

接收短信模式函数如下

void Set_Text_Mode3(void)
{
    Second_AT_Command("ATE0","OK",3);                                        //取消回显   
    Second_AT_Command("AT+CNMI=3,2,0,0,0","OK",3);                            //新短信直接输出
    Second_AT_Command("AT+CMGF=1","OK",3);                                //TEXT模式   
}

如果模块先发送一条短信给手机,然后模块再设置接收模式,模块就检测不到短信从而不能执行相应的操作,如果把发送短信的两句代码去掉,模块就可以检测得到短信,
哪个大佬教教怎么写才能先发送一条短信,再检测是否收到短信



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2018-4-9
在线时间
25 小时
 楼主| 发表于 2018-5-15 15:21:12 | 显示全部楼层
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5136
金钱
5136
注册时间
2014-8-26
在线时间
1316 小时
发表于 2018-5-15 17:57:50 | 显示全部楼层
我了解的没有方法,发送方只能判断发送是否成功。什么时候接收到,发送方判断不了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表