Recv data is too long.有人4G模块USR-LTE-7S4响应AT指令失败
使用这个模块在上电复位后,开始会收到若干未知数据,设备正常工作时会回复[USR-LTE-7S4]
。
以查询固件信息为例,发送AT+VER?
,会返回Recv data is too long.
错误:
是因为此时模块并不是AT指令模式,需要先退出该模式。
在USR-LTE-7S4 软件设计手册28页写到:
从网络透传、HTTPD 切换至临时指令模式的时序:
- 串口设备给设备连续发送“+++”,设备收到“+++”后,会给设备发送一个‘a’。 在发送“+++”之前的一个串口打包间隔时间(参考 2.2.2 成帧机制)内不可发送任何数据。
- 当设备接收‘a’后,必须在 3 秒内给设备发送一个‘a’。
- 设备在接收到‘a’后,给设备发送“+ok”,并进入“临时指令模式”。
- 设备接收到“+ok”后,知道模块已进入“临时指令模式”,可以向其发送 AT 指令。
从 AT 指令模式切换至网络透传、HTTPD 的时序:
- 串口设备给设备发送指令“AT+ENTM”后面加回车符,16 进制表示 0x0D0x0A。
- 设备在接收到指令后,给设备发送“OK”,并回到之前的工作模式。
- 设备接收到“OK”后,知道模块已回到之前的工作模式。
注意这里的+++
和a
的发送是不需要发送换行符\r\n
的,而查询指令AT+VER?
是需要加换行符才行的,否则会返回+ERR:2
的错误。