“如何与其它Microduino模块连接”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
第41行: 第41行:
 
程序如下:
 
程序如下:
 
<source lang="cpp">
 
<source lang="cpp">
/*
+
String myStringSerial1="";
core hardware(RX0,TX1) =9600
+
String myStringSerial="";
core software(D2,D3)=9600  must match with cc2530 setup.when change cc2530 baud  rate
 
*/
 
#include <SoftwareSerial.h>
 
SoftwareSerial mySerial(2, 3); // RX, TX
 
String myStringSoftCom="";
 
String myStringHardCom="";
 
 
void setup()   
 
void setup()   
 
{
 
{
  // Open serial communications and wait for port to open:
 
 
   Serial.begin(9600);
 
   Serial.begin(9600);
   // set the data rate for the SoftwareSerial port
+
   Serial1.begin(9600);
  mySerial.begin(9600);
 
 
}
 
}
  
第61行: 第53行:
 
     while (Serial.available() > 0)   
 
     while (Serial.available() > 0)   
 
     {
 
     {
       myStringHardCom += char(Serial.read());
+
       myStringSerial += char(Serial.read());
 
       delay(2);
 
       delay(2);
 
     }
 
     }
     mySerial.println(myStringHardCom);  
+
     Serial1.println(myStringSerial);  
     myStringHardCom="";
+
     myStringSerial="";
     while (mySerial.available() > 0)   
+
     while (Serial1.available() > 0)   
 
     {
 
     {
     myStringSoftCom += char(mySerial.read());
+
     myStringSerial1 += char(Serial1.read());
     delay (2);
+
     delay(2);
 
     }
 
     }
     if (myStringSoftCom.length() > 0)
+
     if (myStringSerial1.length() > 0)
 
     {   
 
     {   
         Serial.println(myStringSoftCom);
+
         Serial.println(myStringSerial1);
         myStringSoftCom="";
+
         myStringSerial1="";
 
     }
 
     }
 
     delay(100);
 
     delay(100);
 +
 
}
 
}
 
</source>
 
</source>
 +
 
因为Microduino-core自带重启按钮,通过AT指令设定完参数后,可以点击重启按钮,设置好的参数会自动保存。
 
因为Microduino-core自带重启按钮,通过AT指令设定完参数后,可以点击重启按钮,设置好的参数会自动保存。
  
第85行: 第79行:
 
三个模块可以直接叠加。程序如下
 
三个模块可以直接叠加。程序如下
 
<source lang="cpp">
 
<source lang="cpp">
String myStringSerial1="";
+
/*
String myStringSerial="";
+
core hardware(RX0,TX1) =9600
 +
core software(D2,D3)=9600  must match with cc2530 setup.when change cc2530 baud  rate
 +
*/
 +
#include <SoftwareSerial.h>
 +
SoftwareSerial mySerial(2, 3); // RX, TX
 +
String myStringSoftCom="";
 +
String myStringHardCom="";
 
void setup()   
 
void setup()   
 
{
 
{
 +
  // Open serial communications and wait for port to open:
 
   Serial.begin(9600);
 
   Serial.begin(9600);
   Serial1.begin(9600);
+
   // set the data rate for the SoftwareSerial port
 +
  mySerial.begin(9600);
 
}
 
}
  
第97行: 第99行:
 
     while (Serial.available() > 0)   
 
     while (Serial.available() > 0)   
 
     {
 
     {
       myStringSerial += char(Serial.read());
+
       myStringHardCom += char(Serial.read());
 
       delay(2);
 
       delay(2);
 
     }
 
     }
     Serial1.println(myStringSerial);  
+
     mySerial.println(myStringHardCom);  
     myStringSerial="";
+
     myStringHardCom="";
     while (Serial1.available() > 0)   
+
     while (mySerial.available() > 0)   
 
     {
 
     {
     myStringSerial1 += char(Serial1.read());
+
     myStringSoftCom += char(mySerial.read());
     delay(2);
+
     delay (2);
 
     }
 
     }
     if (myStringSerial1.length() > 0)
+
     if (myStringSoftCom.length() > 0)
 
     {   
 
     {   
         Serial.println(myStringSerial1);
+
         Serial.println(myStringSoftCom);
         myStringSerial1="";
+
         myStringSoftCom="";
 
     }
 
     }
 
     delay(100);
 
     delay(100);
 
 
}
 
}
 
</source>
 
</source>

2014年10月27日 (一) 12:57的版本

目的

  • 用AT指令调试Microduino-Zigbee模块时,串行通讯口为D2、D3脚。如何连接Microduino-Zigbee与其它Microduino模块实现AT指令的调试?本教程给出了三种连接方式,方便读者灵活使用Microduino系列产品。

设备

实验方式

Microduino-USBTTL与Microduino-Zigbee

Microduino-USBTTL与Microduino-Zigbee不能直接叠加。 连接方式应为

Microduino-USBTTL Microduino-Zigbee
GND GND
3V3 3V3
RX0 D3
TX1 D2

实物连接见下图

确认导线连接无误后插入USB数据线,然后打开串口调试助手。串口调试助手下载:文件:Com assist.rar 串口调试助手软件界面见下图:

串口如果没有打开,可以点击串口号的列表框按钮查询。发送新行的复选框应该选上对勾。在字符串输入框输入“+++”,点击发送,可以看到Zigbee模块回馈的信息了。 笔者用的波特率是9600。可以输入AT+BAUD=0X设定Zigbee模块的波特率,输入AT+SRST点击发送后重启Zigbee模块可以保存设置值,下次上电无需再设置了。 更多输入指令(AT指令)的含义会在后续文档中介绍。

Microduino-USBTTL与Microduino-Core与Microduino-Zigbee

Microduino-USBTTL与Microduino-Core与Microduino-Zigbee三个模块可以直接叠加。叠加后需要在Microduino-Core的程序中写入程序,用到SoftwareSerial库。 程序如下:

String myStringSerial1="";
String myStringSerial="";
void setup()  
{
  Serial.begin(9600);
  Serial1.begin(9600);
}

void loop() // run over and over
{
     while (Serial.available() > 0)  
    {
      myStringSerial += char(Serial.read());
      delay(2);
    }
     Serial1.println(myStringSerial); 
     myStringSerial="";
     while (Serial1.available() > 0)  
    {
     myStringSerial1 += char(Serial1.read());
     delay(2);
    }
     if (myStringSerial1.length() > 0)
    {   
         Serial.println(myStringSerial1);
         myStringSerial1="";
    }
    delay(100);

}

因为Microduino-core自带重启按钮,通过AT指令设定完参数后,可以点击重启按钮,设置好的参数会自动保存。


Microduino-USBTTL与Microduino-Core+与Microduino-Zigbee

三个模块可以直接叠加。程序如下

/*
 core hardware(RX0,TX1) =9600
 core software(D2,D3)=9600  must match with cc2530 setup.when change cc2530 baud  rate
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
String myStringSoftCom="";
String myStringHardCom="";
void setup()  
{
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  // set the data rate for the SoftwareSerial port
  mySerial.begin(9600);
}

void loop() // run over and over
{
     while (Serial.available() > 0)  
    {
      myStringHardCom += char(Serial.read());
      delay(2);
    }
     mySerial.println(myStringHardCom); 
     myStringHardCom="";
     while (mySerial.available() > 0)  
    {
     myStringSoftCom += char(mySerial.read());
     delay (2);
    }
     if (myStringSoftCom.length() > 0)
    {   
         Serial.println(myStringSoftCom);
         myStringSoftCom="";
    }
    delay(100);
}

结果

  • 输入AT指令,在串口调试助手或是Arduino IDE自带的串口中观察数据。调用SoftwareSerial库时,在115200波特率下会有乱码。