完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
想用STM32控制SIM模块发短信,先进行了几个测试,用sim900a_send_cmd()函数,发送了"AT"、"AT+CPIN?"、"AT+CGMI"指令均返回ok,所以说明32可以与SIM模块通讯,按照正点原子的例程修改了一下,但是,这个发送短信的指令一直没有收到想要的结果
//测试短信发送内容(70个字[UCS2的时候,1个字符/数字都算1个字]) const u8* sim900a_test_msg="您好,这是一条测试短信,由ATK-SIM900A GSM模块发送"; //SIM900A发短信测试 void sim900a_sms_send_test(void) { u8 *p,*p1,*p2; u8 phonebuf[20]="***"; //号码缓存 u8 timex=0; u8 smssendsta=0; //短信发送状态,0,等待发送;1,发送失败;2,发送成功 p=mymalloc(SRAMIN,100); //申请100个字节的内存,用于存放电话号码的unicode字符串 p1=mymalloc(SRAMIN,300);//申请300个字节的内存,用于存放短信的unicode字符串 p2=mymalloc(SRAMIN,100);//申请100个字节的内存 存放:AT+CMGS=p1 while(1) { if(smssendsta) { smssendsta=0; Show_Str(30+40,70,170,90,"等待发送",16,0);//显示状态 } delay_ms(10); smssendsta=1; sim900a_unigbk_exchange(phonebuf,p,1); //将电话号码转换为unicode字符串 sim900a_unigbk_exchange((u8*)sim900a_test_msg,p1,1);//将短信内容转换为unicode字符串. sprintf((char*)p2,"AT+CMGS="%s"",p); // if(sim900a_send_cmd("AT","OK",100)==0)LED2=0; // if(sim900a_send_cmd("AT+CPIN?","OK",200)==0) LED2=0; // if(sim900a_send_cmd("AT+CGMI","OK",200)==0) LED2=0; if(sim900a_send_cmd(p2,">",200)==0) //发送短信命令+电话号码 { LED2=0; u2_printf("%s",p1); //发送短信内容到GSM模块 delay_ms(90); //必须延时,否则 不能发送短信 if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)==0)smssendsta=2;//发送结束符,等待发送完成(最长等待10秒钟,因为短信长了的话,等待时间会长一些) } USART2_RX_STA=0; break; } if((timex%20)==0)LED3=!LED3;//200ms闪烁 timex++; delay_ms(10); if(USART2_RX_STA&0X8000)sim_at_response(1);//检查从GSM模块接收到的数据 myfree(SRAMIN,p); myfree(SRAMIN,p1); myfree(SRAMIN,p2); } 就是那行红色的指令一直未显示发送成功,,我使用LED来判断if里面的条件成不成立,LED灯没有反应。。。 有大神知道可能的原因吗,发一些基本指令会返回ok,所以说明SIM卡可以检测到的。 求指点。 |
|
相关推荐
7个回答
|
|
求指点
|
|
|
|
要加0x1A结束的吧
|
|
|
|
if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)==0)smssendsta=2;/ 这里加了哦,是因为前面一些指令的原因 |
|
|
|
你可以看看合方圆的GU906和GU900E模块
|
|
|
|
暑假了,想学习FPGA的同学们,可以利用暑假期间好好学习下FPGA,我们现在有款初学者的FPGA开发板利器,现在购买还有配套书籍赠送哦: 入门FPGA开发板: https://item.taobao.com/item.htm ... &id=35911884243 赠送完全配套书籍: https://item.taobao.com/item.htm ... amp;id=540865636294 有一定基础的同学,可以看下高端的开发板: https://item.taobao.com/item.htm ... amp;id=520588767908 如果以上两款依然满足不了您的需求,更可以看下更高端的开发板: https://item.taobao.com/item.htm ... &id=39939126777 有任何问题,欢迎旺旺 QQ来咨询哦! |
|
|
|
900A都停产了,我们的GU900E可以替代,2546112380可以找我要资料
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1812 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
952 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1340 浏览 1 评论
LL库F030进行3个串口收发,2个串口为232,一个为485,长时间后,会出现串口1停止运行,另外两个正常,只有重启复原
1801 浏览 1 评论
560 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 04:15 , Processed in 0.620092 second(s), Total 60, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号