在Sim800L AT-命令指南中,有许多不同的状态命令,这应该说明,状态是什么。
例如:
AT+CPAS - check if device is ready
AT+CGREG? - check registration status in network
AT+CGATT? - check if device "attached to network"
AT+CSQ - get signal level但是,在某些情况下,对这些命令的回答可能是“错误”,或者根本没有答案。
我需要一个可靠和快速的方法来知道设备连接到网络,或者它已经在GPRS模式,现在我开始使用闪烁发光二极管在Sim800L上,以检测它的状态。
LED有三个闪烁频率:
我可以用光电二极管和LED的“读”键,或者我可以把LED的电源引脚连接到Arduino的模拟引脚上,读取它的电压。接下来,我可以数一数LED闪烁的速度,并确定Sim800L在哪一种状态。
但是,在不使用这样的拐杖的情况下,我怎样才能获得这样的可靠性呢?
发布于 2020-03-22 20:46:59
给定快速的1秒,您可以发送一个AT命令,例如5次,并接受3个非错误响应作为一个有效的结果。见伪码
uint8_t errorCount = 0;
for (uint8_t i=0;i<5;i++){
.... send AT command ...
if (response == "error") errorCount++;
if (errorCount >=3) errorHandling();
}
... process successful AT command ...或者你的HW方法用LED到模拟引脚
https://stackoverflow.com/questions/60801996
复制相似问题