本文章主要给新手不常看AT指令详细说明书进行快速参考,或者有些老手一时大意忘记了,AT+CMGL读取指令的前提设置导致无法读取短信的问题。我偶尔给客户检测设备售后也会因为忘记了前置设置而无法读取短信,明明看到收到短信但无法读取的问题 AT+CMGL指令是需要跟着前置的AT+CMGF指令进行读取对应的短信的 一、首先AT+CMGL指令,=等号后面输入的参数不一样就读出的短信内容是不一样 AT+CMGL=4 表示读取所有的短信 AT+CMGL=0 表示读取所有未读短信 AT+CMGL=1 表示读取所有已读短信 AT+CMGL="ALL" 注意要ALL要大写,表示与等于4同理读取所有短信 AT+CMGL="REC UNREAD" 注意要REC UNREAD要大写,表示与等于0同理读取未读短信 AT+CMGL="REC READ" 注意要RECREAD要大写,表示与等于1同理读取已读短信 二、AT+CMGF指令,设置短信收发设备以什么模式收发和读取短信消息 AT+CMGF=0 表示以PDU模式,短信以PDU编码模式发送接收和显示,编码有:7-bit、8-bit和UCS2编码3种 AT+CMGF=1 表示以TEXT文本模式,短信以Unicode码显示 三、AT+CMGF与AT+CMGL结合使用 1、首先AT+CMGF=0,读取所有短信只能用AT+CMGL=4读取所有短信,如果CMGL=后面是跟"ALL"那就读取错误的返回ERROR。 读出来的短信内容是包含手机号码等一些协议上的设置的编码内容 2、AT+CMGF=1,读取所有短信只能用AT+CMGL="ALL"读取所有短信,等号后跟数字就返回ERROR错误 读出来的短信内容是Unicode码仅短信的内容 额外提醒,at+cmgf于at+cmgd(删除短信)指令的参数也是有关联的。本文就不说了,自己有设备的朋友自己尝试。 |