将arduino用作ttl串口转USB通信模块

前几天买来一个esp8266模块玩,查文档得知调需用ttl串口通信,vcc接3.3V,无奈手头只有一根5V的ttl转usb。刚开始想用手头的arduino uno r3的3.3V供电,5V的ttl转usb接三根(RX、TX、GND)通信,不知是不是接线问题还是啥,电脑开minicom没有收到信息。为了确认RX、TX口,接树莓派测试,发现没反应时已经迟了,GND接到树莓派的5V去了,拔下来后串口芯片是火辣辣地烫,不敢再用。

于是着手搜用arduino当ttl转usb的方法:

(1)(实测失败)先是搜到这篇,具体是向arduino写入如下代码

1
2
3
4
5
6
7
void setup() {
pinMode(0,INPUT_PULLUP);
pinMode(1,INPUT_PULLUP);
}
void loop() {
// put your main code here, to run repeatedly:
}

然后RX接RX(pin0),TX接TX(pin1),arduino插电脑,开ide,串口监视器即可。

用这方法失败了,原因暂不明。

(2)谷歌到的,很简单,用一根杜邦线将RESET跟GND连起来,RX接RX,TX接TX,arduino插电脑,开ide,串口监视器即可。

(3)方法改自这篇,向arduino写入代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <SoftwareSerial.h>
SoftwareSerial WIFISerial(8, 9); // RX, TX
void setup() {
Serial.begin(115200); //跟电脑通信的速率115200
WIFISerial.begin(115200); //跟esp8266通信速率,根据自己情况修改
}
void loop() {
if (WIFISerial.available()) {
Serial.write(WIFISerial.read());
}
if (Serial.available()) {
WIFISerial.write(Serial.read());
}
}

接着,TX接RX(pin8),RX接TX(pin9),arduino插电脑,开ide,串口监视器,成功。

可以理解为,开启一个软串口跟模块相连,硬串口跟电脑相连,arduino起到一个信息中转的作用。