OpenEdv-开源电子网

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

GSM发送短信问题,程序只写了一次发送,却会发送好几次,第一次正确,后面的乱码

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-3-23
在线时间
12 小时
发表于 2020-4-29 21:19:04 | 显示全部楼层 |阅读模式
1金钱
这个函数只执行一次发送短信,但调试之后却发现他会执行好几次发送,但只有第一次是正确的,后面都是乱码,附图,求大佬指点一下,感谢

收到的短信

收到的短信
QQ截图20200429211200.png
void sim900a_sms_send_test1(u8* sim900a_test1_msg)
{
        u8 p[100];//100个字节的内存,用于存放电话号码的unicode字符串
        u8 p1[300];//300个字节的内存,用于存放短信的unicode字符串
        u8 p2[100];//100个字节的内存 存放:AT+CMGS=p
       
        u8 phonebuf[20]="13759840267";                 //号码缓存
        u8 smssendsta=0;                //短信发送状态,0,等待发送;1,发送失败;2,发送成功

        printf("正在发送\r\n");        //显示正在发送               
        smssendsta=1;                 
        sim900a_unigbk_exchange(phonebuf,p,1);                                //将电话号码转换为unicode字符串
        sim900a_unigbk_exchange(sim900a_test1_msg,p1,1);//将短信内容转换为unicode字符串.
        sprintf((char*)p2,"AT+CMGS=\"%s\"",p);
        if(sim900a_send_cmd((u8*)p2,">",200)==0)                                        //发送短信命令+电话号码
        {                                                                                                                                                            
                u3_printf("%s",p1);                                                                 //发送短信内容到GSM模块
                if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)==0)smssendsta=2;//发送结束符,等待发送完成(最长等待1000*10ms=10秒钟,因为短信长了的话,等待时间会长一些)
        }  
        if(smssendsta==1)printf("发送失败\r\n");        //显示状态
        else printf("发送成功\r\n");                                //显示状态       
}



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

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-3-23
在线时间
12 小时
 楼主| 发表于 2020-4-30 09:29:53 | 显示全部楼层
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-3-23
在线时间
12 小时
 楼主| 发表于 2020-4-30 18:19:25 | 显示全部楼层
如果把程序烧进去,第一次执行两次发送,后面的都像上图这样,执行三次发送,根据原子哥的代码改的,有大佬指点一下吗
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2020-3-23
在线时间
12 小时
 楼主| 发表于 2020-4-30 19:59:33 | 显示全部楼层
知道了,嵌入式软件是不能退出,main函数的三次好像也是巧合,但是后面为啥是乱码
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-5-6 01:43:38 | 显示全部楼层
七友x 发表于 2020-4-30 19:59
知道了,嵌入式软件是不能退出,main函数的三次好像也是巧合,但是后面为啥是乱码

main函数不能执行完。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-29 07:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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