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字节 |