WIDO板子测试AT命令不好用
我用WIDO板子+sim7000c 测试AT命令不好用。用的如下的示例。没有反馈呀
/*!
* @file DFRobot_SIM7000_ATtest.ino
* @N SIM7000 needs 7-12V DC power supply
* @brief This example use the serial port to send AT command to control the SIM7000
* @n With initialization completed, we can enter AT command to SIM7000 directly
* @n Common AT commands :
* @n AT+CPIN? : Check SIM card
* @n AT+CSQ : Check signal quality
* @n AT+CGATT?: Check net attached state
* @n AT+CSTT: Start net connect task
* @n AT+CIFSR : Get local IP
*
* @n Get the AT command table in Resource folder :SIM7000 Series_AT Command Manual_V1.01.pdf
* @n If you use Mega please connect PIN8 PIN10 and set PIN_RX = 10
* @n The AT command must end with CRLF
*
* @copyright Copyright (c) 2010 DFRobot Co.Ltd (http://www.dfrobot.com)
* @license The MIT License (MIT)
* @author (jie.tang@dfrobot.com)
* @version V1.0.1
* @date 2021-09-16
* @url https://github.com/DFRobot/DFRobot_SIM7000
*/
#include <DFRobot_SIM7000.h>
#define PIN_TX 7
#define PIN_RX 8
SoftwareSerial mySerial(PIN_RX,PIN_TX);
DFRobot_SIM7000 sim7000(&mySerial);
void setup() {
Serial.begin(115200);
mySerial.begin(19200);
Serial.println("Turn ON SIM7000......");
if(sim7000.turnON()){ //Turn ON SIM7000
Serial.println("Turn ON !");
}
Serial.println("Set baud rate......");
while(1){
if(sim7000.setBaudRate(19200)){ //Set SIM7000 baud rate from 115200 to 19200 reduce the baud rate to avoid distortion
Serial.println("Set baud rate:19200");
break;
}else{
Serial.println("Faile to set baud rate");
delay(1000);
}
}
mySerial.begin(19200);
Serial.println("For example, if you type AT\\r\\n, OK\\r\\n will be responsed!");
Serial.println("Enter your AT command :");
}
void loop() {
mySerial.listen();
while(mySerial.available()){
Serial.write(mySerial.read());
}
mySerial.flush();
while(Serial.available()){
mySerial.write(Serial.read());
}
delay(20);
}
本帖最后由 头疼欲裂 于 2022-8-2 16:45 编辑
正常应该是返回OK,但我的没反应呢?我已经装了移动的NBIOT卡。
wido板加了外部供电10v的,net灯也闪了。也不行呢。
软硬件串口控制开关切换至TX>D8,RX>D7。两个天线需要安装好。外部电源通过vin,gnd输入。wido主板是leonardo,可以直接用sim7000的软串口at示例代码。 本帖最后由 头疼欲裂 于 2022-8-3 13:29 编辑
1.已经切换到8,7了;
2.GSM天线帮看看可以么,图里面的,还是必须要用PCB板的那个;
3.外部电源用了一个开关电源,输出电流应该没问题;
4.我用的就是at的示例代码。
另外我用GetPosition的示例,初始化都好用。但最后就是Wrong data try again,还是硬件上有问题?
买了一个GSM PCB的天线,但还是不好用呀,问题一样。AT输入命令,没有反馈。 确實很複雜 换了Arduino UNO的板子,也不行呀。感觉软串口命令没传给SIM7000C的板子,硬件上就没有传过去。或者SIM7000C的板子坏了。 示波器看了看,Arudino UNO的D7, D8脚,在设置阶段是有收发信息的。但波特率设置成功后,发AT test命令的时候,TXD, RXD上的收发信息波形就完全一样了。不清楚SIM7000收没收到信息。 改用sscom来连接SIM7000C的USB口,进行测试就好用了。但在ardiuno下用串口测试,不好用不知道为啥,可能还是串口哪里有问题呀。
本帖最后由 头疼欲裂 于 2022-8-24 12:57 编辑
现在我的sim7000c在启动打开阶段不太稳定,有时候sim7000c.TurnON都没执行通过,后续波特率更没有设置上了。但有的时候就可以打开,我把12脚的的启动的时间改为了2秒,有的时候就好用了。
看了SIM7000C里面的程序,checkSendCmd和sendCmd的具体内容是啥。
bool DFRobot_SIM7000::turnON(void)
{
pinMode(12,OUTPUT);
if(checkSendCmd("AT\r\n", "OK", 100)){
sendCmd("AT+CPOWD=1\r\n");
delay(4000);
}
delay(100);
digitalWrite(12, HIGH);
delay(1000);
digitalWrite(12, LOW);
delay(7000);
if(checkSendCmd("AT\r\n", "OK", 100)){
return true;
}else{
return false;
}
}
页:
[1]