WIDO板子测试AT命令不好用

2022-08-021.5万
AI 快速预览详细 收起
本文介绍了使用WIDO板子和SIM7000C模块进行AT命令测试时遇到的问题及解决方案。通过设置正确的波特率(从115200调整到19200),解决了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      [TangJie](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);
}


TueAugust-202208021969..png (157.34 KB, 下载次数: 5095)

WIDO板子+SIM7000C · AT命令测试问题_image_3.webp

创作许可协议

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

评论(9)
fanxin_bme
fanxin_bme
作者
现在我的sim7000c在启动打开阶段不太稳定,有时候sim7000c.TurnON都没执行通过,后续波特率更没有设置上了。但有的时候就可以打开,我把12脚的的启动的时间改为了2秒,有的时候就好用了。
看了SIM7000C里面的程序,checkSendCmd和sendCmd的具体内容是啥。
[backcolor=rgb(30, 30, 30)][font=Consolas, "][color=#569cd6]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;
}
}
[/font][/backcolor][/color]
fanxin_bme
fanxin_bme
作者
改用sscom来连接SIM7000C的USB口,进行测试就好用了。但在ardiuno下用串口测试,不好用不知道为啥,可能还是串口哪里有问题呀。
fanxin_bme
fanxin_bme
作者
示波器看了看,Arudino UNO的D7, D8脚,在设置阶段是有收发信息的。但波特率设置成功后,发AT test命令的时候,TXD, RXD上的收发信息波形就完全一样了。不清楚SIM7000收没收到信息。
fanxin_bme
fanxin_bme
作者
换了Arduino UNO的板子,也不行呀。感觉软串口命令没传给SIM7000C的板子,硬件上就没有传过去。或者SIM7000C的板子坏了。
大哥哥
大哥哥
确實很複雜
fanxin_bme
fanxin_bme
作者
买了一个GSM PCB的天线,但还是不好用呀,问题一样。AT输入命令,没有反馈。
fanxin_bme
fanxin_bme
作者
1.已经切换到8,7了;
2.GSM天线帮看看可以么,图里面的,还是必须要用PCB板的那个;
3.外部电源用了一个开关电源,输出电流应该没问题;
4.我用的就是at的示例代码。
另外我用GetPosition的示例,初始化都好用。但最后就是Wrong data try again,还是硬件上有问题?
Ash1
Ash1
软硬件串口控制开关切换至TX>D8,RX>D7。两个天线需要安装好。外部电源通过vin,gnd输入。wido主板是leonardo,可以直接用sim7000的软串口at示例代码。
fanxin_bme
fanxin_bme
作者
正常应该是返回OK,但我的没反应呢?我已经装了移动的NBIOT卡。
wido板加了外部供电10v的,net灯也闪了。也不行呢。
- 没有更多了 -