M26模块使用方法及编程策略 下载本文

M26模块使用方法及编程策略

初始化模块:

MCU:ATE0\\r\\n (关闭命令回显) M26: OK\\r\\n

MCU: AT+CPIN? \\r\\n (查询SIM卡状态:SIM卡损坏或者无SIM卡) M26:+CPIN: READY\\r\\n (非Ready可认为SIM卡异常)

MCU:AT+CREG?\\r\\n (确定找网成功)

M26: +CREG: 0,1\\r\\n (表明成功,逗号之后的数字:1表示已注册本地网,5表示漫游,否则异常)

MCU: AT+CGATT?\\r\\n (查询GPRS附着是否成功) M26: +CGATT: 1\\r\\n (1:成功;0:失败)

MCU: AT+QIFGCNT=0\\r\\n (将Context0设为前台) M26: OK\\r\\n

MCU: AT+QINDI=1\\r\\n (接收数据缓存模式) M26: OK\\r\\n

MCU: AT+QISDE=0\\r\\n (发送时,关闭数据回显) M26: OK\\r\\n

MCU: AT+QIDNSIP=0\\r\\n (0:使用IP地址连接;1:使用域名连接) M26: OK\\r\\n

建立TCP连接:

MCU:AT+QISTATE\\r\\n (查询连接状态) M26:(回应有以下可能)

1. CONNECT OK\\r\\n (连接已建立,应先关闭连接) MCU:AT+QICLOSE\\r\\n (关闭连接) M26:CLOSE OK\\r\\n (关闭成功)

2. PDP DEACT\\r\\n (GPRS场景异常,应重启模块)

3. IP INITIAL\\r\\n (或者)IP CLOSE\\r\\n (连接已准备好了, 可建立连接)

MCU: AT+QIOPEN=\建立连接到120.24.76.130:6800的TCP连接) M26: OK\\r\\n (语法无误则返回OK,否则返回 ERROR) MCU: (等待连接结果返回,结果有以下可能) 1. CONNECT OK\\r\\n (连接成功) 2. CONNECT FAIL\\r\\n (连接失败)

发送数据到M26:

MCU:AT+QISEND=10\\r\\n (10:要发送给M26的字节数。 M26内存为1460字节)

M26:> (或者)ERROR (M26会根据当前内部缓存大小判断,足够5个则回应:>;不够则返回“ERROR”)。 MCU:1234567890 (数据内容)

M26:SEND OK\\r\\n(或者)SEND FAIL\\r\\n (FAIL出现说明网络错误???) (总结:数据可以分批发送,不足数量,则M26一直等待(无返回);超出则丢弃多余,并返回SEND OK\\r\\n)

M26: +QIRDI: 0,1,0\\r\\n (数据到达通知; 多条数据也只通知一次,除非到达前已经被读空)

从M26中读数据:

MCU: AT+QIRD=0,1,0,6\\r\\n (6:要求读取6个字节) M26: +QIRD: 120.24.76.130:6800,TCP,6\\r\\n123456 \\r\\nOK\\r\\n (123456:数据) MCU: AT+QIRD=0,1,0,6\\r\\n (6:要求读取6个字节) M26: +QIRD: 120.24.76.130:6800,TCP,4\\r\\n7890 \\r\\nOK\\r\\n (7890:被读取数据) MCU: AT+QIRD=0,1,0,6\\r\\n (6:读取6个字节) M26: \\r\\n OK\\r\\n (没有数据被读出) (总结:

1)总会返回OK:有数据被读出则携带读出数量; 空则直接OK;

2)<要求读取数量>可以固定大小,如果返回<被读取数量>小于<要求读出数量>,表明已经读空; 如果相等,则只能再读,直到出现小于情况或直接返回OK情况;

3)在命令回显关闭条件下:模块回应为连续字节输出;否则,在命令回显后有一个500us左右不等时长之间隔;)

FTP下载:

MCU: AT+QIFGCNT=0\\r\\n (设置Contex 0为前台) M26: OK\\r\\n

MCU: AT+QFTPUSER=\vigi\(设置FTP用户,这里是\) M26: OK\\r\\n

MCU: AT+QFTPPASS=\vigi\(设置FTP密码) M26: OK\\r\\n

MCU: AT+QFTPOPEN=\120.24.76.130\21\\r\\n (建立FTP连接) M26: OK\\r\\n

M26: +QFTPOPEN:0\\r\\n (0为成功,非0为异常)

MCU: AT+QFTPCFG=4,\(设置本地存放路径) M26: OK\\r\\n

M26: +QFTPCFG:0\\r\\n (0为成功,非0为异常)

MCU: AT+QFTPPATH=\/home/vigi/share/TcpSvr/\(设置服务端目录) M26: OK\\r\\n

M26: +QFTPPATH:0\\r\\n (0为成功,非0为异常)

MCU: AT+QFTPGET=\db.c\(下载文件db.c保存到指定的路径) M26: OK\\r\\n

M26: +QFTPGET:1146\\r\\n (小于0为异常,否则为下载文件大小)

MCU: AT+QFOPEN=\(只读模式打开文件) M26: +QFOPEN: 134072\\r\\n (返回文件句柄134072) OK\\r\\n

MCU: AT+QFREAD=134072,1024\\r\\n (读句柄为134072的文件1024字节) M26: CONNECT 1024\\r\\n (返回实际读取字节数)

..... (返回数据,此处为了编写文档的便利,省略数据内容) OK\\r\\n

MCU: AT+QFREAD=134072,1024\\r\\n (继续读句柄为134072的文件1024字节) M26: CONNECT 122\\r\\n (如果实际读取的字节数小于要读的字节数,则表明是最后一个数据包) ..... (返回数据,此处为了编写文档的便利,省略数据内容) OK\\r\\n

MCU: AT+QFCLOSE=134072\\r\\n (M26: OK\\r\\n

关闭句柄为134072的文件)