stm32与sim900之GPRS通信(电脑串口与SIM900通信)

来源:互联网 发布:讨厌大野智 知乎 编辑:程序博客网 时间:2024/05/16 00:50

注意:

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发送相关的设置指令

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

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

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

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




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



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

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

              

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

3 花生壳的使用

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



输入:      

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

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

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

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

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



 

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



  注意:要勾选HEX发送


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

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

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

            






0 0
原创粉丝点击