Gravity: UART A6 GSM & GPRS 无线通信模块 AT指令返回异常

2019-01-191.1万
AI 快速预览详细 收起
本文讨论了使用Gravity: UART A6 GSM & GPRS模块连接Arduino UNO R3时遇到的AT指令返回异常问题。具体表现为串口监视器出现乱字符或无返回值。文章提供了详细的排查步骤,包括检查SIM卡安装、确认波特率设置、验证电源稳定性等,帮助用户快速解决这一常见问题。


Gravity UARTA6 GSM&GPRS连接Arduino UNO R3之后,按照维库的代码上传R3后,在串口监视器出现⸮⸮⸮这样的乱字符返回、或者完全没有返回值。在串口监视器上手动输入AT指令也是一样。用的是移动的NANO SIM卡配大板支架适配UART A6背面的SIM卡插槽。
大家谁能指点一下?

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(5)
DFH1w5pg6k4
DFH1w5pg6k4
作者
问题解决了。先把波特率调成一个不是9600的,运行一遍程序,然后再调回9600运行程序,问题就神奇地解决了。多谢各位高人,我也不知是什么原因,是不是相当于一种重置啊?!
zhangf151
zhangf151回复DFH1w5pg6k4
我的直接没反应,我怀疑我的A6坏了
fats114
fats114
瞄了一眼没仔细看,最好提供一下接线和代码截图,这个代码和连接图直接从wiki上拖过来很难看出问题,不过串口监视器截图显示你应该是选错串口了,恭喜你
gada888
gada888
把这两行去掉,直接接硬件串口试试。硬串在板上写着TX.RX
#include
SoftwareSerial mySerial(11, 10); // TX-Pin11, RX-Pin10
DFH1w5pg6k4
DFH1w5pg6k4
作者
代码是商城中商品对应的维库自带的代码,这段代码只是做了个初始化检查。如下:
#include
SoftwareSerial mySerial(11, 10); // TX-Pin11, RX-Pin10
void updateSerial()
{
delay(2000);
while (Serial.available()) {
mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
}
while(mySerial.available()) {
Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
}
}
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
}
void loop()
{
mySerial.println("AT"); //握手测试,成功则返回OK
updateSerial();
mySerial.println("AT+CSQ"); //信号质量测试,值为0-31,31表示最好
updateSerial();
mySerial.println("AT+CCID"); //读取SIM,可以检测是否有SIM卡或者是否接触良好
updateSerial();
mySerial.println("AT+CREG?"); //检测是否注册网络
updateSerial();
mySerial.println("AT+SNFS=0"); //调整为耳机模式(AT+SNFS=1 表示扬声器模式)
updateSerial();
mySerial.println("AT+CRSL=2"); //调整音量,值为0-15,15表示音量最大
updateSerial();
while(1)
{
if(mySerial.available())
{
Serial.write(mySerial.read());//如果mySerial收到数据则通过Serial输出
}
if(Serial.available())
{
mySerial.write(Serial.read());//如果Serial收到数据则通过mySerial输出
}
}
}
硬件连接:

串口监视器的乱码返回:

我用的Mac电脑下的Arduino IDE。
gada888
gada888
你最好多一点资料,例如图片。代码什么的。别人不一定用过那个模块,但是可以根据代码来判断一下。
- 没有更多了 -