昨天使用AT指令查询小区ID发现有类似功能的指令
三个指令的说明
CREG 是针对所有 网络注册信息
CGREG 是针对GPRS的网络注册信息
CEREG 针对EPS网络的注册信息 (EPS是3GPP标准委员会在第4代移动通信中出现的概念)
使用方法
AT+CREG 这个指令有两种使用方法 CREG=2或者CREG=1
命令响应(Response): +CREG:< mode>,< stat>[,< lac>,< ci>]
参数说明:< mode>
0 : 禁止网络注册主动提供结果代码(默认设置)
1 : 允许网络注册主动提供结果代码:+CREG:< stat>
2 : 启用网络注册和位置信息非请求结果码+CREG: < stat>[,< lac>,< ci>]
< stat>
0:未注册,终端当前并未在搜寻新的运营商
1:已注册本地网络
2:未注册,终端正在搜寻基站
4:未知代码
5:已注册,处于漫游状态
< lac>
位置区编号
< ci>
小区ID
AT+CREG默认状态一般是等于AT+CREG=1,返回 +CREG: < mode>,< stat> 如果使用的芯片或模组是双模状态,当stat=0时代表当前是NB状态,stat=1时代表当前是2G以上网络
AT+CEREG? 查询 EPS 网络注册状态
返回+CEREG: < n>,< state>,[,< lac>,< rac>,< ci>[,< AcT>]]
参数说明: < n>:
0 关闭网络注册的主动上报结果码
1 打开网络注册的主动上报结果码+CREG:
2 打开网络注册和位置信息的主动上报结果码+CEREG: [,[,]]
< state>:EPS 注册状态 0 未注册,MT 当前当前没有搜索或者注册到运营商网络
1 已注册,注册到归属网络
2 未注册,但是 MT 当时正在尝试附着或者搜索用于注册的运营商网络
3 注册被拒绝
4 未知错误
5 已注册,注册到漫游网络
< lac>:2 比特字符串类型,表示位置区编码或者跟踪区编码,以 16 进制格式表述(例如, 00C3 相当于 十进制的 195)
< rac>:1 比特字符串类型,表示路由区编码,16 进制格式(例如,1C 相当于十进制的 28), 如果没有使 用路由区编码,00(相当于十进制的 0)将会被提供
< ci>:4 比特字符串类型,用 16 进制表示 GERAN/UTRAN/E-UTRAN 小区 ID
< AcT>:已注册网络的接入技术
解决方法
CREG=2查询小区ID适用于RDA8955芯片,RDA8908/8909一般会使用AT+CEREG?