“如何与其它Microduino模块连接”的版本间的差异
853387039@qq.com(讨论 | 贡献) |
853387039@qq.com(讨论 | 贡献) (→方法二) |
||
(未显示同一用户的3个中间版本) | |||
第1行: | 第1行: | ||
==目的== | ==目的== | ||
− | *用AT指令调试Microduino- | + | *用AT指令调试Microduino-Zigbee模块时,默认串行通讯口为D2、D3脚。本教程给出了三种调试方法,方便读者灵活使用Microduino系列产品。 |
− | == | + | ==方法一== |
− | * | + | *只用[[Microduino-USBTTL/zh]]调试Microduino-Zigbee模块,注意:Microduino-USBTTL与Microduino-Zigbee不能直接叠加。连接方式为: |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{|class="wikitable" | {|class="wikitable" | ||
|- | |- | ||
第27行: | 第18行: | ||
|} | |} | ||
− | + | 如图: | |
+ | |||
[[File: usbttl-zigbee.jpg|600px|center|thumb]] | [[File: usbttl-zigbee.jpg|600px|center|thumb]] | ||
− | + | *确认导线连接无误后插入USB数据线,然后打开串口调试助手,将波特率选择“9600”(默认),并且要选择回车换行(\r\n)模式: | |
− | + | [[File: com assist UI.jpg|600px|center|thumb]] | |
− | [[File: com assist UI.jpg|600px|center|thumb]] | + | *在串口输入框中输入+++进入(返回CCATMODE LOGIN)或退出(返回CCATMODE LOGOUT )AT命令模式。 |
− | + | [[File: com assist UI-1.jpg|600px|center|thumb]] | |
− | + | *可以输入AT+BAUD=0X(00-04)设定Zigbee模块的波特率 | |
− | + | **00=9600; | |
+ | **01=19200; | ||
+ | **02=38400; | ||
+ | **03=57600; | ||
+ | **04=115200 | ||
+ | *输入AT+SRST命令,则重启Zigbee模块,AT+FRST命令,则模块恢复出厂设置。更多命令请参考文档: | ||
− | ===Microduino- | + | ==方法二== |
− | + | *使用Microduino-Core作为核心,这时你要用到[[Microduino-USBTTL/zh]]与[[Microduino-Core/zh]]与[[Microduino-Zigbee/zh]]。 | |
− | + | 原理是Microduino-USBTTL将电脑的数据先发送给Microduino-Core,Microduino-Core再通过软串口发送给Microduino-Zigbee,这样的优点在于不用接杜邦线。 | |
+ | *将三个模块可以直接叠加。叠加后将程序下载到Microduino-Core,同时用到SoftwareSerial库。程序如下: | ||
<source lang="cpp"> | <source lang="cpp"> | ||
/* | /* | ||
core hardware(RX0,TX1) =9600 | core hardware(RX0,TX1) =9600 | ||
− | core software(D2,D3)= | + | core software(D2,D3)=9600 must match with cc2530 setup.when change cc2530 baud rate |
− | */ | + | */ |
#include <SoftwareSerial.h> | #include <SoftwareSerial.h> | ||
SoftwareSerial mySerial(2, 3); // RX, TX | SoftwareSerial mySerial(2, 3); // RX, TX | ||
第54行: | 第52行: | ||
Serial.begin(9600); | Serial.begin(9600); | ||
// set the data rate for the SoftwareSerial port | // set the data rate for the SoftwareSerial port | ||
− | mySerial.begin( | + | mySerial.begin(9600); |
} | } | ||
void loop() // run over and over | 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); | |
− | } | + | }</source> |
− | </source> | + | 下载成功后,然后打开串口调试助手,将波特率选择“9600”(默认),并且要选择回车换行(\r\n)模式,就可以开始AT命令了。 |
− | |||
− | |||
− | |||
− | == | + | ==方法三== |
− | + | 使用Core+作为核心,原理和Core是一样的,只是用到了Core+的Serial1(串口1),因此程序有所改变: | |
<source lang="cpp"> | <source lang="cpp"> | ||
第93行: | 第88行: | ||
{ | { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
− | Serial1.begin( | + | Serial1.begin(9600); |
} | } | ||
void loop() // run over and over | 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); | |
− | + | }</source> | |
− | } | + | 三个模块直接叠加,打开IDE,将程序复制到IDE中,编译通过后选择好板卡下载到Core+核心,然后打开串口调试助手,将波特率选择“9600”(默认),并且要选择回车换行(\r\n)模式,就可以开始AT命令了。 |
− | </source> | ||
− | == | + | ==注意问题== |
− | * | + | *出厂默认的波特率是9600,如果无法通讯,请更换波特率试试; |
+ | *数据通讯格式一定还要设置成“\r\n”,回车换行模式。 | ||
+ | *如果某些指令更改完毕断电重启后无效,请重新设置完毕后AT+SRST复位设备,这样新的网络参数才能生效。 |
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-Core作为核心,这时你要用到Microduino-USBTTL/zh与Microduino-Core/zh与Microduino-Zigbee/zh。
原理是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复位设备,这样新的网络参数才能生效。