新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2020-3-23
- 在线时间
- 12 小时
|
1金钱
这个函数只执行一次发送短信,但调试之后却发现他会执行好几次发送,但只有第一次是正确的,后面都是乱码,附图,求大佬指点一下,感谢
收到的短信
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"); //显示状态
}
|
|