新闻| 文章| 资讯| 行情| 企业| wap手机版| article文章| 首页|会员中心|保存桌面|手机浏览
普通会员

章丘市夏青科技有限公司

企业列表
新闻列表
  • 暂无新闻
推荐企业新闻
联系方式
  • 联系人:汪女士
首页 > 新闻中心 > [转]sim800c AT指令
新闻中心
[转]sim800c AT指令
发布时间:2024-11-14        浏览次数:1        返回列表
(转载请删除括号里的内容)

功能:GSM短信收发,GPRS数据传输,TCP/IP协议数据传输,LBS信息的定位,http的java接口调用,FTP的无线升级,模块BT的串口协议传输。

[转]sim800c AT指令

1、短信接收发功能“AT+CMGF=1 ” //配置短信形式“AT+CMGL=”ALL” ” //读取所有短信“AT+CSCS=”GSM” ” //进行CSCS设置“AT+CMGS=” //后面添加信息中心短信号码“AT+CMGD=” //进行短信删除C语言书写解释:@1、每一个AT指令后面都要以 或者是 结束。这是AT标准AT指令集里面规定的,没有什么疑问。@2、AT指令后面如果是要跟字符串的东西,例如AT+CSCS=”GSM”,这句指令,因为我们发过去给simcom模块的是字符串,最后传入的形式是:“AT+CSCS=”GSM””,因为里面有多个字符串标识(“”),导致模块识别不了,然而里面的字符串不是真的字符串结束标识符,而是我们实际要传入的值,所以我们要把这个标识符转义成字符就可以,让其不代表其他意思,加上转义字符就可以了例如上面:”AT+CSCS=”GSM” ”。@3、AT+CMGF=mode:mode:0 PDU模式1 TXT文本模式(经常用的)@4、AT+CMGL=”ALL”标识列出所有的信息,包括已读和未读的。或者是AT+CMGL=“REC UNREAD”会列举出所有未读的消息AT+CMGL=“REC READ”会列举出已读的消息。后面列举的形式:包括短信状态(已读 未读),短信Num,消息发送方号码,消息发送时间,最后面就是紧跟着信息的内容了。@5、AT+CSCS=”GSM”设置信息服务发送模块,其实这个可以不设置也可以发送,默认的就是这个模式。@6、AT+CMGS= 号码这个命令执行完之后,就像其他传输一样会出现一个‘>’符号,后面就是你要写入的信息内容。注意这个结束有点奇怪。要在短信内容后面添加0x1A 0x1D才可以结束。对应的是Ctrl+Z的按键的ASCII码。如果不加的话,短信是永远不会结束的。@7、AT+CMGD=NUMNUM:就是短信的序列号,当短消息发过来,其短信的序列号就固定了,短信息对应的序列号不会随着你删除一条短信,其他短信息序列号随着改动。@8、AT+CMGR=NUMNUM:同上,就是短信息的序列号,固定读取这个序列号的短信内容。以上的用法利用好了,足矣做一个短信收发的小功能了。前提要把GSM基本的功能配齐全,例如AT+CFUN=1,AT+CREG=1检测GSM入网成功才可以,其他标准用法就不一一说了,看看AT指令集应该都会用了。

2、GPRS数据传输这个数据2G的数据流量功能,与GSM网络还不一样,大家千万不要认为这2个东西走的是一个网络通道奥.1“AT+CGATT=1 ”“AT+CGATT? ”@1、AT+CGATT=NUMNUM:0表示与当前GPRS网络分离,1表示要附着现有检测到的GPRS网络。@2、AT+CGATT?表示检测当前的GPRS网络附着状态,成功返回1 失败返回0当然以上的成功条件是sim卡已经插入,并且射频天线正常,sim卡开通了数据流量,否则会无法附着GPRS网络奥。当然上面的一步就是为了下面的TCP/IP服务做准备的。

3、TCP/IP数据流量传输服务模块已经内置了TCP/IP协议栈,很强大“AT+CSTT=”” //设置APN账号,用户名,密码(后面如果说sim卡没有设置用户和密码就不需要填写)“AT+CIICR ” //唤醒无线连接 进行连接用GPRS或者CSD“AT+CIFSR ” //获取联网后 本地分配的IP地址“AT+CIPQSEND=0 ” //设置发送数据的返回形式“AT+CMUX=0 ” //说明是基础模式 没有进行复用“AT+CIPHEAD=0 ” //去除IP头 内容“AT+SAPBR=3,1,”Contype”,”GPRS” ”//基于IP的应用程序的承载设置“AT+SAPBR=3,1,”APN”,”” //设置网络承载的APN服务“AT+CIPSTART=”TCP”,”” //进行网络传输服务的选择“AT+CIPSEND=length” //进行数据的传输写入“AT+CIPCLOSE=1 ” //关闭TCP/IP连接通道以上顺序不要有颠倒,否则其中配置会报错。@1、AT+CSTT=这个是来配置sim卡运营商的APN账号,用户名和密码如果用户名和密码没有设置可以不用写,只写一个APN就可以@2、AT+CIICR这个是开启无线射频模块的指令。@3、AT+CIFSR这个是在进行入网后,根据运营商网络获取基站分配给终端的IP地址。@4、AT+CIPQSEND=modemode: 0 返回形式是 send ok .1 返回形式是 send ok accept@5、AT+CMUX=NUMNUM: 这个是设置串口复用还是不复用,0:串口不复用 只是模块的基本功能1 : 串口复用,协议遵循GSM0710协议,详见协议描述,下篇讲解。@6、AT+CIPHEAD=0去除IP头显示,设置为1,会显示发送方的IP地址信息。@7、AT+SAPBR=3,1,”Contype”,”GPRS”设置无线连接数据的承载形式,为GPRS,也可以设置成CSD,但一般设置都是GPRS.@7、AT+SAPBR=3,1,”APN”,“运营商的APN名称”这一步很关键,这是你的数据最终是由哪家运营商接入的公网设置。例如:移动2G:CMMTM/CMNET/CMIOT等,联通2G:UNINET UNWAP等,沃达丰网络2G例如:internet.gdsp/ppinternetd.gdsp/spe.inetd3.gdsp.当然这个沃达丰是国际运营商,世界好多国家也都有支持和合作,再进行国际业务开拓时候,这个APN是一定要修改的,要根据使用的沃达丰的sim卡类型来修改。APN有沃达丰人员提供。@8、”AT+CIPSTART=”TCP”,”IP地址”这个就是描述了我们终端模块使用的是什么协议,还有要连接的服务端的IP地址,也可以是域名。里面继承了DNS服务,可以转换的。支持填写UDP/TCP.@9、AT+CIPSEND=length这个命令是描述你要本次发向服务器的数据量多少,以字节为单位。等这条命令执行完成之后,会出现‘>’这个符号,等你输入的字符数据长度等于你上一步要发送的数据长度时候,他会自动进行发送,不用加任何的结束标志符,不想短信一样还要加0x1A 0x1D这样的结束符。@10、AT+CIPCLOSE=1数据发送成功之后,模块会返回senk ok标识。这时候如果没有更多的数据发送这时候可以使用上面的指令进行通道断开连接。以上步骤最好不要有顺序颠倒,按照配置一步步来最后可以实现与服务器端的收发功能。

4、LBS基站定位@1、AT+CENG?这个指令就是获取周边基站的信息,要想定位准确的话,最好是获取三个基站信息数据,因为三点定位就是这个原理。画圆圈就可以了,精确度在20m—-500m之间,这个要看定位时候的信号强度。获取基站返回信息包括:mcc:移动用户所属的国家代码,默认值460mnc:移动网号,0:中国移动 1:中国联通lac:位置区域码 , 取值范围: 0-65535cellid:基站小区编号 基站小区编号 ,取值范围: 取值范围: 取值范围: 0-65535 ,0-268435455 ,其中 ,其中 0,65535,268435455 不使用, 小区编号大于 65535 时为 3G 基站。signal(rssi):信号强度 , 取值范围: 0到-113dbm. 113dbm.(如获得信号强度为正数,则请按照以下公式 获得信号强度为正数,则请按照以下公式 进行转换: 获得的正信号强度 * 2 * 2 – 113 )这些信息的作用就是为了要调用某个地图来用的,为了获取出来地理位置信息。就拿高德地图来说。调用的http接口:http://apilocate.amap.com/position?accesstype=0&imei=866104021101384&cdma=0&bts=460,0,6324,33427,-56&nearbts=460,0,6324,33427,-56|460,0,6324,33427,-56&output=json&key=key值返回的结果就是经纬度信息。

当然这个模块也有直接获取的经纬读信息的AT指令集。例如:AT+CIPGSMLOC=1,1这个返回值就是经纬度信息。AT+CIPGSMLOC=2,1这个就是返回的是调用正常与否和时间。

5、http协议调用AT+HTTPINIT ————————–>初始化HTTP 服务AT+HTTPTERM ————————->结束HTTP 服务AT+HTTPPARA ————————->设置HTTP 参数值AT+HTTPDATA ————————->HTTP 写数据AT+HTTPACTION ———————->HTTP 方式激活AT+HTTPREAD ————————->查询HTTP 服务响应AT+HTTPSCONT ———————–>保存HTTP 应用上下文AT+HTTPSTATUS ———————->读取HTTP 状态@1:AT+HTTPINIT初始化HTTP服务,后面不用加参数 正常返回OK@2:AT+HTTPTERM结束http服务,后面不用加参数,正常返回OK@3:AT+HTTPPARA设置HTTP回话参数,这个要进行设置2次,第一次是CID的设置,后面是目的地的URL例如:AT+HTTPPARA = “CID”,1OKAT+HTTPPARA=“URL”,”www.sim.com”OK@4:AT+HTTPACTION=MODEMODE=0时候后面就是get的用法AT+HTTPACTION=0 ———-> GET 会话开始OK+HTTPACTION: 0,200,1000 ————–>GET 成功这个是获取到的数据还没有进行串口输出,要主动使用命令才可以输出。AT+HTTPREAD ———–>读取服务器的数据向串口输出。+HTTPREAD: 1000…. ———->向串口输出数据OK在这一步进行解析就可以了,注意的是如果MCU的处理数据的速度不够快的话,可能数存在数据丢失的危险,,因为最好是使用数据中断的形式,否则数据接收会影响总的数据服务进行。AT+HTTPTERM ————–>结束HTTP 服务OK@5:AT+HTTPACTION=1post的用法AT+HTTPINIT ————————————–>初始化HTTP 服务OKAT+HTTPPARA = “CID”,1———————>设置HTTP 会话参数OKAT+HTTPPARA=“URL”,”www.sim.com”OKAT+HTTPDATA=100,10000 ——————–>这个是进行数据缓存到模块中DOWNLOAD……OK上传 100 字节数据,输入数据的等待时间为10000 毫秒。等待时间必须设置得足够长,以使所有数据都能下载到模块中。准备从UART 接收数据,DCD 引脚拉低。所有数据接收完毕,DCD 引脚拉高。AT+HTTPACTION=1 —————>执行完这一步才开始进行传输OK ———————–>POST 会话开始+HTTPACTION: 1,200,0 —————————–>POST 成功AT+HTTPTERM ———————–>关闭服务OK结束HTTP 服务@6:AT+HTTPACTION=2从http服务器获取http头信息AT+HTTPINIT ————————–>初始化HTTP 服务OKAT+HTTPPARA = “CID”,1 ——————>设置HTTP 会话参数OKAT+HTTPPARA=“URL”,”www.sim.com”OKAT+HTTPACTION=2——————————>HEAD 会话开始OK+HTTPACTION: 2,200,0 ——————–>HEAD 成功AT+HTTPTERM———————————>结束http服务OK@7:进行http服务器代理AT+HTTPINITOK初始化HTTP 服务AT+HTTPPARA = “CID”,1OKAT+HTTPPARA=“URL”,”www.sim.com”OK设置HTTP 会话参数AT+HTTPPARA=“PROIP”,”10.0.0.172”OK设置代理服务器IP 地址AT+HTTPPARA = “PROPORT”,80OK设置代理服务器端口号AT+HTTPACTION=0OKGET 会话开始+HTTPACTION: 0,200,1000 GET 成功AT+HTTPREAD+HTTPREAD: 1000….OK读取 HTTP 服务器的数据向 UART 口输出数据AT+HTTPTERMOK结束HTTP 服务@8:进行http断点续传AT+HTTPINITOK初始化HTTP 服务AT+HTTPPARA = “CID”,1OK设置HTTP 会话参数AT+HTTPPARA =“URL”,”http://www.sim.com/img/sim_logo_jr_1003_38.gif”OK设置 URL, gif 图片的大小是16384 bytesAT+HTTPPARA = “BREAK”,2000OK设置断点AT+HTTPACTION=0OKGET 会话开始, 获取从 2000 到16384 的数据+HTTPACTION: 0, 200,14384 GET 成功AT+HTTPREAD+HTTPREAD: 14384….OK读取HTTP 服务器的数据向 UART 口输出数据AT+HTTPTERMOK@9:获取HTTP状态AT+HTTPINITOK初始化HTTP 服务AT+HTTPPARA =“CID”,1OK设置HTTP 会话参数AT+HTTPPARA =“URL”,“www.baidu.com”OKAT+HTTPACTION = 0OKGET 会话开始AT+HTTPSTATUS?+HTTPSTATUS: GET,1,1440,7915OK“获取”会话的状态为进行中+HTTPACTION: 0, 200,9335 GET 成功AT+HTTPSTATUS?+HTTPSTATUS: GET,0,0,0OK“获取”会话的状态为已完成AT+HTTPACTION = 1OKPOST 会话开始AT+HTTPSTATUS?+HTTPSTATUS: POST,2,1440,608OK“上传”会话的状态为进行中+HTTPACTION: 1,200,0 POST 成功AT+HTTPSTATUS?+HTTPSTATUS: POST,0,0,0OK“上传”会话的状态为已完成AT+HTTPTERMOK以上是HTTP的用法

6、FTP协议传输AT+FTPPORT ————————-设置FTP 控制端口AT+FTPMODE ————————设置FTP 主动或被动模式AT+FTPTYPE ————————–设置数据传输类型AT+FTPPUTOPT ———————-设置FTP 输入类型AT+FTPCID —————————设置FTP 承载文件标识AT+FTPREST ————————- 设置下载续传AT+FTPSERV ————————–设置FTP 服务地址AT+FTPUN —————————设置FTP 用户名AT+FTPPW —————————-设置FTP 口令AT+FTPGETNAME ——————-设置下载文件名称AT+FTPGETPATH ——————–设置下载文件路径AT+FTPPUTNAME ——————–设置上传文件名称AT+FTPPUTPATH ——————–设置上传文件路径AT+FTPGET —————————-设置下载文件AT+FTPPUT —————————设置上传文件AT+FTPSCONT ———————-保存FTP 应用上下文AT+FTPDELE ————————–删除FTP 服务器上的指定文件AT+FTPSIZE —————————获取FTP 服务器上的指定文件的文件大小AT+FTPSTATE ————————-获得FTP 状态AT+FTPEXTPUT ———————–扩展方式上传文件AT+FTPMKD ————————–在远程计算机上创建目录AT+FTPRMD ————————–在远程计算机上删除目录AT+FTPLIST —————————列出远程计算机的目录详情FTP协议用法在我们终端使用的是为了远程无线升级用的,因为断点续传效率要比http快好多,所以用的是FTP进行的固件下载。并且还有另一个原因,因为FTP有个功能可以读取你设置的大小的字节。这样的话会让mcu有足够的时间进行下载下来的数据进行解密和校验保证数据稳定性。因为http他不可以使用主动读取的数据大小。因为串口使用的中断形式,当模块的USART使用较高的数据波特率时候,MCU会一直进中断,导致正常的业务数据解密和校验执行打断,并且处理很慢,毕竟一直有数据过来。例如我们测试用115200、57600的波特率进行数据的传输,MCU会明显处理不过来。导致许多数据会丢失。只有我们使用得9600的慢速波特率之后,数据的解析和接收才算正常运行。所以我们这个主动获取多少字节数据的功能就完美解决了这个问题。@1:FTP的Get用法AT+FTPCID=1OKAT+FTPSERV=”116.228.221.52”OKAT+FTPUN=”sim.cs1”OKAT+FTPPW=”**”OKAT+FTPGETNAME=”1K.txt”OKAT+FTPGETPATH=”/”OK设置FTP 会话参数AT+FTPGET=1OK+FTPGET: 1,1 数据可读AT+FTPGET=2,1024+FTPGET: 2,5001234567890123456789012345678901234567890123456789OK请求读取1024字节,但当前仅50字节可读AT+FTPGET=2,1024+FTPGET: 2,0OK再次请求读取1024字节。当前没有数据可读,但会话尚未结束+FTPGET: 1,1 如果模块收到了数据,但用户没有输入“AT+FTPGET:2, ” 来读取数据, “+FTPGE T:1,1”会在一定时间后再次显示AT+FTPGET=2,1024+FTPGET: 2,1024012345678901234567890123456789012345678901234567890…..1234OK请求读取1024字节数据当前有 1024 字节数据可读+FTPGET:1,0 数据传输结束,FTP 服务器连接关闭@2:FTP的Put用法AT+FTPCID=1OKAT+FTPSERV=”116.228.221.52”OKAT+FTPUN=”sim.cs1”OKAT+FTPPW=”**”OKAT+FTPPUTNAME=”1K.txt”OKAT+FTPPUTPATH=”/”OK设置FTP 会话参数AT+FTPPUT =1OK打开FTP Put 会话+FTPPUT: 1,1,1360 FTP 会话可以开始上传数据。一次最多可以上传1360 字节数据。上传数据的多少取决于当前网络状态AT+FTPPUT=2,100+FTPPUT: 2,100客户端请求发送100字节数据。响应提示用户现在必须输入100字节数据进行传输…… 准备从UART接收数据,DCD引脚拉低OK 所有数据接收完毕,DCD引脚拉高+FTPPUT: 1,1,1360 URC提示FTP会话可以传输更多数据AT+FTPPUT=2,0OK所有数据传输完毕,FTP 会话将会关闭+FTPPUT: 1,0

FTP 会话过程中可能由于糟糕的网络坏境或其他原因发生各种错误。包括超时错误、密码错误等各种常见的报错。@3:FTP超时AT+FTPGET =1OK打开FTP Get 会话.+FTPGET: 1,64 如果网络情况不好,可能会发生超时。FTP 服务器的连接关闭AT+FTPGET =1OK打开FTP GET 会话.+FTPGET: 1,1 数据可读+FTPGET: 1,1……..+FTPGET: 1,1如果用户没有输入“AT+FTPGET:2,” 来读取数据, “+FTPGET:1,1”会在一定时间后再次显示+FTPGET: 1,64 如果用户长时间不读取数据, 会话将会发生超时。FTP 服务器的连接关闭@4:FTP出错AT+FTPPW=”3214567”OK设置错误的密码AT+FTPGET =1OK打开FTP GET 会话+FTPGET: 1,72 FTP 会话密码错误。FTP 服务器连接关闭@5:FTP设置断点参数AT+FTPGET =1OK打开FTP GET 会话+FTPGET: 1,1 数据可读AT+FTPGET = 2,1024+FTPGET: 2,29wodeceshijieguo,zhgeshigeshiaOK从FTP 服务器下载数据+FTPGET: 1,0 数据传输结束,FTP 服务器连接关闭AT+FTPREST=20OK设置断点AT+FTPGET =1OK打开FTP Get 会话.+FTPGET: 1,1 数据可读AT+FTPGET = 2,1024+FTPGET: 2,9shigeshiaOK从断点处开始获取数据+FTPGET: 1,0 数据传输结束,FTP 服务器连接关闭@6:设置FTP的删除的方法AT+FTPCID=1OKAT+FTPSERV=”116.228.221.52”OKAT+FTPUN=”sim.cs1”OKAT+FTPPW=”**”OKAT+FTPGETNAME=”1K.txt”OKAT+FTPGETPATH=”/”OK设置FTP 会话参数AT+FTPDELEOK打开FTP DELE 会话+FTPDELE: 1,0 文件删除完成,FTP 服务器连接关闭。@7:FTP的SIZE用法AT+FTPCID=1OKAT+FTPSERV=”116.228.221.52”OKAT+FTPUN=”sim.cs1”OKAT+FTPPW=”**”OKAT+FTPGETNAME=”1K.txt”OKAT+FTPGETPATH=”/”OK设置FTP 会话参数AT+FTPSIZEOK打开FTP SIZE 会话+FTPSIZE: 1,0,1024 获取文件大小完成,FTP 服务器连接关闭。@7:FTP MKD和RMD方法AT+FTPCID=1OKAT+FTPSERV=”116.228.221.52”OKAT+FTPUN=”sim.cs1”OKAT+FTPPW=”**”OKAT+FTPGETPATH=”/test”OK设置FTP 会话参数AT+FTPMKDOK打开FTP 会话+FTPMKD: 1,0 在远程计算机上创建了目录 “test”AT+FTPRMDOK打开 FTP 会话+FTPRMD: 1,0 远程计算机上的目录 “test” 被删除@8:FTP LIST会话AT+FTPCID=1OKAT+FTPSERV=”116.228.221.52”OKAT+FTPUN=”sim.cs1”OKAT+FTPPW=”**”OKAT+FTPGETNAME=”1K.txt”OKAT+FTPGETPATH=”/”OK设置FTP 会话参数AT+FTPLIST=1OK打开FTP 会话+FTPLIST: 1,1 数据可读AT+FTPLIST=2,1024+FTPLIST: 2,126total 0drw-rw-rw- 1 user group 0 Oct 1214:58.drw-rw-rw- 1 user group 0 Oct 1214:58…OK请求读取 1024 字节数据,但当前仅有126字节可读+FTPLIST: 1,0 数据传输结束,FTP 服务器连接关闭

7、模块BT的用法AT+BTHOST 查询和设置当前模块蓝牙设备名AT+BTSTATUS 查询当前蓝牙状态AT+BTPOWER 设备功能开关AT+BTPAIR 蓝牙配对AT+BTUNPAIR 删除配对蓝牙设备AT+BTSCAN 蓝牙设备搜索AT+BTConNECT 主动连接蓝牙设备的服务AT+BTDISCONN 断开已连接的蓝牙设备服务AT+BTGETPROF 获取配对的蓝牙设备提供的ProfileAT+BTACPT 接受配对的蓝牙设备的连接请求AT+BTOPPACPT 接受配对的蓝牙设备的OPP 推送对象AT+BTOPPPUSH 推送OPP 对象给配对的蓝牙设备AT+BTSPPGET 蓝牙串口接收数据AT+BTSPPSEND 蓝牙串口发送数据AT+BTATA 接通来电AT+BTATDL 重拨上次去电AT+BTATH 挂断电话AT+BTVGS 设置通话音量AT+BTVGM 设置MIC 音量AT+BTATD 拨打电话AT+BTRSSI 获取已连接的蓝牙设备的信号强度AT+BTVTS 发送DTMFAT+BTCIND 获取智能手机状态AT+BTCLCC 获取智能手机通话状态AT+BTPBSYNC 获取远端设备的电话本AT+BTPBF 根据姓名或电话号码,在远端设备进行电话本查找AT+BTAVRCOP AVRCP 操作AT+BTVIS 设置蓝牙可见性AT+BTSPPCFG SPP 配置AT+BTPAIRCFG 设置蓝牙配对模式@1:BT作为服务端进行的连接SPP数据传输服务串口蓝牙数据传输服务“AT+BTPOWER=1 ” //蓝牙开机“AT+BTHOST=buff[n]” //设置蓝牙名称“AT+BTSPPCFG=”MC”,0 ” //关闭多路连接“AT+BTPAIRCFG=2 ” //设置为自动模式“AT+BTPAIR=2 ” //配置密钥“AT+BTPAIR=1,1 ” //蓝牙确认配对“AT+BTConNECT=1,4 ” //服务器被动连接“AT+BTACPT=1 ” //作为服务器端建立SPP连接“AT+BTPOWER=0 ” //蓝牙关机“AT+BTSTATUS? ” //蓝牙查询“AT+BTUNPAIR=0 ” //删除全部蓝牙配对信息“AT+BTSPPSEND=” //蓝牙发送长度指示“AT+BTSCAN=1,10 ” //进行蓝牙扫描 1开启 20是扫描时间可以调节“AT+BTPAIRCFG=1 ” //这个是设置 蓝牙配对秘钥“AT+BTPAIR=2,0000 ” //这个是蓝牙接收配对的响应“AT+BTGETPROF=” //这个是进行蓝牙主动连接获取的传输协议“AT+BTConNECT=” //进行蓝牙设备连接“AT+BTPAIR=0,” //这个是主动连接设备的请求

本文转自:https://blog.csdn.net/wang2425559/article/details/74076597

---------------------作者:Gustavo_G来源:CNBLOGS原文:https://www.cnblogs.com/Gustavo-G/p/14595220.html版权声明:本文为作者原创文章,转载请附上博文链接!