当前位置:首页 > 单片机 > 单片机
[导读]注意:1 sim900在进行GPRS通信的时候最大电流可以到90MA.瞬间电流SIM900模块可能高达2A@4V,即输入端电流瞬间值可能高达740mA@12V,故给模块选择电源的时候,要能满足瞬间电流峰值。以上这段话摘录自正点原子的SIM900用

注意:

1 sim900在进行GPRS通信的时候最大电流可以到90MA.瞬间电流SIM900模块可能高达2A@4V,即输入端电流瞬间值可能高达740mA@12V,故给模块选择电源的时候,要能满足瞬间电流峰值。


以上这段话摘录自正点原子的SIM900用户手册,也就是说你在用SIM900这个模块进行GPRS数据传输时,要保证能给这个模块提供2A左右的电流,在实际的测试当中,如果提供的电流过小,会造成GPRS通信偶尔几次通信成功。


2 stm32向SIM900通信的时候,发送的每个AT指令之间是要有时间间隔的,可以先通过电脑串口与SIM900进行通信有一个简单的认识,然后再开始写程序,调试。


3 注意SIM卡安装的方向不要装反


一 模块实物图



二 通过电脑串口调试SIM900

1 SIM900上电后一般会有指示灯,其中一个指示灯常亮,表示电源供电正常,另一个指示灯如果保持亮1秒,熄灭2秒,则表示注册到网络

2 发送指令

2.1 发送指令之前最好先发送一个"AT",用于SIM900进行串口波特率的同步。

注意AT指令不区分大小写,发送时应勾选发送新行。


2.2发送相关的设置指令


[cpp]view plaincopy

AT+CGCLASS="B"//设置移动台类别为B,即模块支持包交换和电路交换模式,但不能同时支持


[csharp]view plaincopy

AT+CGDCONT=1,"IP","CMNT"//设置PDP上下文标志1,采用互联网协议(IP)接入点为“CMNET”


[cpp]view plaincopy

AT+CGATT=1//用于设置附着和分离GPRS业务


[cpp]view plaincopy

AT+CIPCSGP=1,"CMNET"//设置为GPRS连接,接入点为“CMNET”





[cpp]view plaincopy

AT+CIPCSGP=1,"CMNET"//设置TCP连接本地端口号为2000





注意:1 在输入AT指令时,所有的符号都是英文的,中文的会导致错误,还有在输入的时候,要看清AT指令,不要输错。

2 在SIM900返回错误的时候先检查指令有没有输入错误,确保指令没有出错的情况下就要检查为什么AT指令会出错了,这里建议看一下SIM900的指令手册,举个例子

在当时我第一次测试的时候,这个总是返回错误,后来才发现原来我的手机卡欠费了,根本不支持GPRS业务。所以说出了错误不要干着急,要学会分析错误的原因。

3 花生壳的使用

3.1打开花生壳和网络调试助手



输入:%20%20%20

[cpp]view%20plaincopy

AT+CIPSTART="tcp","c1594751r4.iok.la","13938"

为什么是"c1594751r4.iok.la","13938",这个是和花生壳有关的。


注意:输入上面的指令后先出现“OK”,要稍等一会后才会出现“CONNECT OK”(连接成功),这也就是我在开头说的为什么一定要在程序里面加延时的原因。

好了,现在就可以向网络端发送数据了。

[cpp]view plaincopy

at+cipsend//开始发送数据指令




这次待发送的数据是“hello word",可以看到网络调试助手那里并没有收到数据,那是因为还要发送十六进制的"1A"



注意:要勾选HEX发送


注意事项:1 用花生壳是因为我们学校是内网,关于花生壳的时候我会接着写下来

2 长期使用GPRS要注意心跳包的维持

3 原则上讲现在我们是可以通过stm32来模拟这个过程与SIM900通信了,但是实际中却稍微有一些改动。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭