弄了很久,终于试验成功。
刚开始用Arduino的硬串口 0(RX)、1(TX)号口测试,一直不成功,后来怀疑是测试的时候跟电脑连接着的原因。
后来用软串口测试,避开电脑串口的干扰,成功了。
先看看RS232转TTL转接口长啥样子:
还是先看连接方法:
TTL_VCC——接Arduino板子5V
TTL_GND——接Arduino板子GND
TTL_RXD——接Arduino板子RXD
TTL_TXD——接Arduino板子TXD
COM口2号孔(RXD)——接设备COM口3号孔
COM口3号孔(TXD)——接设备COM口2号孔
COM口5号孔(GND)——接设备COM口5号孔
这里要注意的是,Arduino主板跟RS232转接板连接时,RX、TX并不是反接的,而RS232转接板跟COM设备连接时,RX、TX是反接的,这个问题要注意。
好了,接线完毕,就可以开始测试了。
来看一张整体效果图:
代码如下:
【库文件】软串口库 SoftwareSerial,系统自带。
#include <SoftwareSerial.h>
SoftwareSerial DLSerial(6, 7); // 软串口 RX(D6), TX(D7)
//注意这里的接线方法,软串口RX接RS232转接板的RX口,TX接RS232转接板的TX口
void setup() {
DLSerial.begin(9600); //设备波特率9600
}
void loop() {
DLSerial.write(1); //发送字节数据
DLSerial.write(3);
delay(500);
while (DLSerial.available()>0) //如果缓存中有接收到的数据
{
DLSerial.read() //读取缓存中的串口数据
delay(2);
}
delay(500);
}