如何与其它Microduino模块连接

来自Microduino Wikipedia
853387039@qq.com讨论 | 贡献2014年11月17日 (一) 09:10的版本 方法二
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

  • 用AT指令调试Microduino-Zigbee模块时,默认串行通讯口为D2、D3脚。本教程给出了三种调试方法,方便读者灵活使用Microduino系列产品。

方法一

  • 只用Microduino-USBTTL/zh调试Microduino-Zigbee模块,注意:Microduino-USBTTL与Microduino-Zigbee不能直接叠加。连接方式为:
Microduino-USBTTL Microduino-Zigbee
GND GND
3V3 3V3
RX0 D3
TX1 D2

如图:

  • 确认导线连接无误后插入USB数据线,然后打开串口调试助手,将波特率选择“9600”(默认),并且要选择回车换行(\r\n)模式:
  • 在串口输入框中输入+++进入(返回CCATMODE LOGIN)或退出(返回CCATMODE LOGOUT )AT命令模式。
  • 可以输入AT+BAUD=0X(00-04)设定Zigbee模块的波特率
    • 00=9600;
    • 01=19200;
    • 02=38400;
    • 03=57600;
    • 04=115200
  • 输入AT+SRST命令,则重启Zigbee模块,AT+FRST命令,则模块恢复出厂设置。更多命令请参考文档:

方法二

原理是Microduino-USBTTL将电脑的数据先发送给Microduino-Core,Microduino-Core再通过软串口发送给Microduino-Zigbee,这样的优点在于不用接杜邦线。

  • 将三个模块可以直接叠加。叠加后将程序下载到Microduino-Core,同时用到SoftwareSerial库。程序如下:
/*
 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);
  }
  if(myStringHardCom!="")
    mySerial.println(myStringHardCom); 
  myStringHardCom="";
  while (mySerial.available() > 0)  
  {
    myStringSoftCom += char(mySerial.read());
    delay (2);
  }
  if (myStringSoftCom.length() > 0)
  {   
    Serial.println(myStringSoftCom);
    myStringSoftCom="";
  }
  delay(100);
}

下载成功后,然后打开串口调试助手,将波特率选择“9600”(默认),并且要选择回车换行(\r\n)模式,就可以开始AT命令了。

方法三

使用Core+作为核心,原理和Core是一样的,只是用到了Core+的Serial1(串口1),因此程序有所改变:

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);
  }
  if(myStringSerial!="")
    Serial1.println(myStringSerial); 
  myStringSerial="";
  while (Serial1.available() > 0)  
  {
    myStringSerial1 += char(Serial1.read());
    delay(2);
  }
  if (myStringSerial1.length() > 0)
  {   
    Serial.println(myStringSerial1);
    myStringSerial1="";
  }
  delay(100);
}

三个模块直接叠加,打开IDE,将程序复制到IDE中,编译通过后选择好板卡下载到Core+核心,然后打开串口调试助手,将波特率选择“9600”(默认),并且要选择回车换行(\r\n)模式,就可以开始AT命令了。

注意问题

  • 出厂默认的波特率是9600,如果无法通讯,请更换波特率试试;
  • 数据通讯格式一定还要设置成“\r\n”,回车换行模式。
  • 如果某些指令更改完毕断电重启后无效,请重新设置完毕后AT+SRST复位设备,这样新的网络参数才能生效。