“Microduino-Module RS485/zh”的版本间的差异
853387039@qq.com(讨论 | 贡献) |
小 (Wasdpkj@hotmail.com moved page Microduino-RS485/zh to Microduino-Module RS485/zh) |
||
(未显示1个用户的10个中间版本) | |||
第3行: | 第3行: | ||
|- | |- | ||
| | | | ||
− | [[File: Microduino-RS485-rect.jpg|400px|thumb|right|Microduino-RS485]] | + | [[File: Microduino-RS485-rect.jpg|400px|thumb|right|Microduino- RS485]] |
Microduino- RS485是基于MAX485芯片低功耗的串口通讯模块,能实现串口的双向传输数据。 | Microduino- RS485是基于MAX485芯片低功耗的串口通讯模块,能实现串口的双向传输数据。 | ||
+ | |||
+ | |||
+ | |||
第29行: | 第32行: | ||
*采用半双工通讯方式,同一个时间只能发送或者接收数据 | *采用半双工通讯方式,同一个时间只能发送或者接收数据 | ||
*最高2.5Mbps的传输速率 | *最高2.5Mbps的传输速率 | ||
− | * | + | *可自动控制转换接收数据还是发送数据,也可程序控制,一般选择自动方式。 |
+ | [[file:Microduino-RS485-rule_pin.JPG|thumb|800px|center]] | ||
==文档== | ==文档== | ||
*芯片:'''[[File:MAX485.pdf]]''' | *芯片:'''[[File:MAX485.pdf]]''' | ||
==开发== | ==开发== | ||
+ | 485通讯接口是一个对通讯接口的硬件描述,它只需要两根通讯线,既可以在两个或两个以上的设备之间进行数据传输。这种数据传输的连接,是半双工的通讯方式。即在某一个时刻,一个设备只能进行发送数据或接收数据。 | ||
+ | 硬件上可以通过拨动开关来选择串口通讯,同时你需要借助程序来实现不同的串口之间通过485协议传输数据。 | ||
==应用== | ==应用== | ||
+ | *采用两个Core+做串口数据传输,通过串口监视器发送想要传输的数据。 | ||
+ | *硬件搭建 | ||
+ | {|class="wikitable" | ||
+ | |- | ||
+ | |硬件||数量||功能 | ||
+ | |- | ||
+ | | [[Microduino-Core+/zh]]||2个 || 核心 | ||
+ | |- | ||
+ | |[[Microduino-USBTTL/zh]] ||2个 || 下载程序 | ||
+ | |- | ||
+ | |[[Microduino-RS485/zh]] ||2个 || 485通讯 | ||
+ | |- | ||
+ | |USB数据连接线 ||2条||连通Microduino模块与计算机。 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | *将Core+,USBTTL,RS485叠加起来,分别搭建两组,在通过导线将485协议接口连接起来。 | ||
+ | *通过拨动开关选择串口1(Serial1),参考引脚规则图,选择自动方式。 | ||
+ | **TX:0101,RX:0010 | ||
+ | |||
+ | *程序 | ||
+ | <source lang="cpp"> | ||
+ | //#include <SoftwareSerial.h> | ||
+ | |||
+ | //SoftwareSerial mySerial(9, 10); //RX,TX | ||
+ | |||
+ | String comdata_rec = ""; //显示的字符串 | ||
+ | String onedata_rec = ""; //判断clean缓存字符串 | ||
+ | |||
+ | String comdata_send = ""; //显示的字符串 | ||
+ | String onedata_send = ""; //判断clean缓存字符串 | ||
+ | |||
+ | String serialdata_rec=""; | ||
+ | String serialdata_send=""; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | Serial.begin(9600); | ||
+ | Serial1.begin(115200); | ||
+ | } | ||
+ | |||
+ | void loop() // run over and over again | ||
+ | { | ||
+ | while (Serial.available() > 0) | ||
+ | { | ||
+ | comdata_rec = ""; //清空字符 | ||
+ | serialdata_rec = ""; | ||
+ | onedata_rec += char(Serial.read()); //读取字符 | ||
+ | comdata_rec += onedata_rec; //同上 | ||
+ | delay(30); | ||
+ | } | ||
+ | if( serialdata_rec!=comdata_rec) | ||
+ | { | ||
+ | onedata_rec = ""; //缓存字符串清空 | ||
+ | serialdata_rec=comdata_rec; | ||
+ | Serial1.print(comdata_rec); | ||
+ | } | ||
+ | |||
+ | while (Serial1.available() > 0) | ||
+ | { | ||
+ | comdata_send = ""; //清空字符 | ||
+ | serialdata_send = ""; | ||
+ | onedata_send += char(Serial1.read()); //读取字符 | ||
+ | comdata_send += onedata_send; //同上 | ||
+ | delay(30); | ||
+ | } | ||
+ | if( serialdata_send!=comdata_send) | ||
+ | { | ||
+ | onedata_send = ""; //缓存字符串清空 | ||
+ | serialdata_send=comdata_send; | ||
+ | Serial.println(comdata_send); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | *请确认你搭建了Microduino开发环境,参考:[[Microduino Getting start/zh]] | ||
+ | *分别将程序下载到两个核心板,打开串口监视器,通过一个监视器发送数据,可以看到另一个监视器接收到发送的数据,说明数据由一个模块传给另一个模块了。 | ||
+ | [[file:Microduino - RS485-send1.JPG|thumb|600px|center]] | ||
+ | [[file:Microduino - RS485-send2.JPG|thumb|600px|center]] | ||
==购买== | ==购买== |
2016年1月25日 (一) 05:16的最新版本
Language | English |
---|
Microduino- RS485是基于MAX485芯片低功耗的串口通讯模块,能实现串口的双向传输数据。
特色
规格
文档开发485通讯接口是一个对通讯接口的硬件描述,它只需要两根通讯线,既可以在两个或两个以上的设备之间进行数据传输。这种数据传输的连接,是半双工的通讯方式。即在某一个时刻,一个设备只能进行发送数据或接收数据。 硬件上可以通过拨动开关来选择串口通讯,同时你需要借助程序来实现不同的串口之间通过485协议传输数据。 应用
//#include <SoftwareSerial.h>
//SoftwareSerial mySerial(9, 10); //RX,TX
String comdata_rec = ""; //显示的字符串
String onedata_rec = ""; //判断clean缓存字符串
String comdata_send = ""; //显示的字符串
String onedata_send = ""; //判断clean缓存字符串
String serialdata_rec="";
String serialdata_send="";
void setup()
{
Serial.begin(9600);
Serial1.begin(115200);
}
void loop() // run over and over again
{
while (Serial.available() > 0)
{
comdata_rec = ""; //清空字符
serialdata_rec = "";
onedata_rec += char(Serial.read()); //读取字符
comdata_rec += onedata_rec; //同上
delay(30);
}
if( serialdata_rec!=comdata_rec)
{
onedata_rec = ""; //缓存字符串清空
serialdata_rec=comdata_rec;
Serial1.print(comdata_rec);
}
while (Serial1.available() > 0)
{
comdata_send = ""; //清空字符
serialdata_send = "";
onedata_send += char(Serial1.read()); //读取字符
comdata_send += onedata_send; //同上
delay(30);
}
if( serialdata_send!=comdata_send)
{
onedata_send = ""; //缓存字符串清空
serialdata_send=comdata_send;
Serial.println(comdata_send);
}
}
购买历史图库
视频 |