跳转至

CIPSEND

发送数据:AT+CIPSEND

语法规则:

命令类型 语法 返回和说明
设置命令 单路连接(AT+CIPMUX=0): AT+CIPSEND=<length> 本命令用于在单链接模式下发送长度不可变的数据
1) 正常情况下返回 >(后面有个空格)
>(空格)后输入<length>长度的数据,则数据自动发送出去。
如果是快发模式0或慢发模式,则数据发送成功后,有如下的返回:
SEND OK
如果是快发模式1,则数据发送成功后,有如下的返回:
DATA ACCEPT:<length>
如果数据发送失败,则有如下的返回:SEND FAIL
2) 如果连接未建立或者连接被断开,返回:
+CME ERROR <err>
多路连接(+CIPMUX=1): AT+CIPSEND=<n>[,<length>] <length>省略时,本命令用于多连接模式下发送长度可变的数据。
响应">", 此时 输入数据,执行CTRL+Z(0x1A)发送,或执行ESC(0x1B)中止操作;
<length>不省略时,本命令用于多连接模式下发送长度不可变的数据。响应">",>后输入<length>长度的数据,则数据自动发送出去。 如果连接未建立或者连接被断开,返回:
+CME ERROR <err>
如果是快发模式0或慢发模式,则数据发送成功后,有如下的返回:<n>,SEND OK
如果是快发模式1,则数据发送成功后,有如下的返回:
DATA ACCEPT:<n>,<length>
如果数据发送失败,返回:
<n>,SEND FAIL
执行命令 AT+CIPSEND 本命令用于在单链接模式下发送长度可变的数据
响应">", 此时 输入数据,执行CTRL+Z(0x1A)发送,或执行ESC(0x1B)中止操作
如果连接未建立或已被断开,返回:
+CME ERROR <err>
如果是慢发模式,则数据发送成功后,有如下的返回:
SEND OK
如果是快发模式,则数据发送成功后,有如下的返回:
DATA ACCEPT:<length>
如果数据发送失败,返回:
SEND FAIL
查询命令 AT+CIPSEND? 单路连接(AT+CIPMUX=0)返回:
+CIPSEND: <size>
OK
多路连接(AT+CIPMUX=1)返回:<br>+CIPSEND: <n>,<size>
OK
测试命令 AT+CIPSEND=? 单路连接(AT+CIPMUX=0)返回:
+CIPSEND: <length>
OK
多路连接(AT+CIPMUX=1)返回:
+CIPSEND: <0-7>,<length>
OK
注意事项 1. 数据的最大发送长度由网络决定。
2. 通过AT+CIPATS可以在设定的时间内自动发送数据。
3. 只有在连接已建立的状态下才可以发送数据。
4. 一次最多能发送字节数不大于<size>
5. 不推荐使用慢发模式!
6. 发送命令AT+CIPSEND或AT+CIPSEND=<length>以\r或\r\n为结尾。若用户以\r结尾,如果发送的数据第一个字节恰好是\n,模块会判断发送命令以\r\n为结尾,导致发送的数据的第一个字符\n被吞掉。所以,此时建议用户用CIPSEND发送数据以\r\n为结尾。
例如:
AT+CIPSEND\r>
\n123456
模块会判断为AT+CIPSEND\r\n,会把数据中第一个字符\n吃掉。服务器那边收到的数据是123456。
解决的方法是:
AT+CIPSEND\r\n
>\n123456
再例如:AT+CIPSEND=7\r
>\n123456
模块会判断为AT+CIPSEND\r\n,会把数据中第一个字符\n吃掉,导致数据少一个字符,会一直发不出去。解决的方法是:
AT+CIPSEND=7\r\n
>\n123456

参数定义:

参数 定义 取值 对取值的说明
<n> Link No.
与+CIPSTRAT中<n>定义一致
0~5 整数型,表示连接序号
<length> 发送数据长度 - 整数型,它必须小于<size>
<size> 每次发送数据最大值 - 整数型,目前是1460字节