天线|RF射频
直播中

涂舒男

8年用户 193经验值
私信 关注
[问答]

GSM发送短信的两个问题

[C] 纯文本查看 复制代码
//SIM900A发短信测试 void sim900a_sms_send_test(void){  u8 *p="Congratulations! You succeed!";    sim900a_init();//不需要sim900a_unigbk_exchange吗?  if(sim900a_send_cmd("AT+CMGS=\"18646668556\"rn",">",200)==0);//设置要发送的手机号码  {delay_ms(500);    if(sim900a_check_cmd(">"))//是否收到">"    {LED1=!LED1;      u2_printf((char*)p);                              //发短息内容到GSM模块      if(sim900a_send_cmd((u8*)0X1A,"+CMGS:",1000)==0)//发送结束符,等待发送完成(最长等待10秒,因为短信长了的话,等待时间会长些)      {          LED1=!LED1;      }      USART2_RX_STA=0;    }  }}这是我在论坛搜到的一个关于发短信的程序,这哥们的发送短信的函数模块没有像原子哥sim900a_unigbk_exchange转换函数,,,他这个行得通不?(买了板子没买稳压电源,稳压电源刚买的还在路上。。。先学习下了解下情况。。。orz)
还有就是我如果结合GPS,采集到GPS信息dtbuf1,我只要将p=dtbuf1就行了对吧,也就是原子哥代码里的const u8* sim900a_test_msg
[C] 纯文本查看 复制代码
sprintf((char*)dtbuf1,"Longitude:%.5f %1c Latitude:%.5f %1crnUTC Date:%04d/%02d/%02drnUTC Time:%02d:%02d:%02d ",           ((float)gpsx.longitude)/100000,gpsx.ewhemi,((float)gpsx.latitude)/100000,gpsx.nshemi,        gpsx.utc.year,gpsx.utc.month,gpsx.utc.date,gpsx.utc.hour,gpsx.utc.min,gpsx.utc.sec);

回帖(3)

余少虹

2019-5-27 10:22:54
需要那个函数,你需要把你的手机号和你要发的短信全部经过那个函数转换之后才能发出去。你先调试电脑—SIM900a,你在熟悉AT指令之后,在用单片机调试。
还有你的第一百三十八行,sim900a_send_cmd里面有检查的功能,不用再加了!!
举报

吴纯英

2019-5-27 10:33:50
串口线漏买了,,,跪了,,我买来再试试,,先谢谢了
举报

秦伙茂

2019-5-27 10:43:44
马一个
举报

更多回帖

发帖
×
20
完善资料,
赚取积分