
清除缓存之后重发
while(!Hand("OK")) //判断是否握手成功,如果不成功延时一会,再发送AT握手指令
{
CLR_Buf(); //清除缓存
Send_ASCII("AT"); //发送联机指令
Send_Hex(0x0d); //发送回车符
Send_Hex(0); //发送换行符
Delay_ms(600);
}
GSM是GlobalSystemforMobileCommunications的缩写,意为全球移动通信系统,是世界上主要的蜂窝系统之一。
GSM是基于窄带TDMA制式,允许在一个射频同时进行8组通话。GSM80年代兴起于欧洲,1991年投入使用。到1997年底,已经在100多个国家运营,成为欧洲和亚洲实际上的标准,到了2001年,在全世界的162个国家已经建设了400个GSM通信网络。
GSM系统的容量是有限的,在网络用户过载时,就不得不构建更多的网络设施。值得欣慰的是GSM在其他方面性能优异,它除了提供标准化的列表和信令系统外,还开放了一些比较智能的业务如国际漫游等。
GSM手机的方便之处在于它提供了一个智能卡,人们称之为SIM卡,并且机卡可以分离,这样用户更换手机并且定制个人信息这方面都十分便利了。GSM网络经过多年的发展完善,现在已经非常成熟,盲区少,信号稳定,自动漫游,并且通讯距离不受周围环境影响。尤其是GSM短信息,灵活方便,可以跨市、跨省、甚至跨国传送,而且每发送一条短信息只要1毛钱,非常可靠廉价。
此外,目前手机SIM卡近年来可以0元申请办理,某些套餐使用费用比固话还低。因此利用手机短信来实现报警、超远程遥控工业设备、传输数据是一个非常不错的选择。GSM模块,是一个类似于手机的通讯模块,集成了手机的若干功能于一块小电路板上,它可以发送短消息,通话等等,模块虽小,但它具备了很多手机的功能,拥有它等于就是拥有了手机的核心部分了,它在很多应用领域中都有着广泛的应用,GSM模块通过使用AT指令才能控制它,模块可以与电脑RS232串口相连,也可以用单片机来进行控制。
void send(uint sdata)--这是发送一个字节的函数
{
SBUF=sdata;
while(TI==0);
TI=0;
}
send ("AT+CMGF=0\r\n");
send ("AT+CMGS=25\r\n");
发送一个字节的函数,在这里,你却用它发送字符串?
----
单片机发出的东西,你先不要急着送到手机模块。
先送到 PC 的串口助手,看看,你都发出了什么。
gsm的at指令之间为速度不同要延时。根据查询相关信息显示,在使用GSM模块进行AT指令通信时,由于GSM模块的处理速度和响应速度可能不同,使用AT指令之间添加延时可以确保指令之间的稳定和准确性。具体来说,AT指令之间添加一定的延时可以帮助GSM模块更好地处理上一个指令的响应并准备下一个指令的执行,避免指令之间的干扰和冲突。延时还可以帮助人们更好地控制AT指令的执行时间,避免一些因指令执行时间过短而出现的问题,例如数据传输不完整、响应错误等等。
以上就是关于51单片机连接GSM模块问题全部的内容,包括:51单片机连接GSM模块问题、网络频率2G的“GSM”是什么意思、单片机控制GSM模块发短信,程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)