martincccc 发表于 2015-3-18 21:46:20

ESP8266 模拟串口返回乱码

代码如下

#include <SoftwareSerial.h>

SoftwareSerial mySerial(10, 11); // RX, TX

void setup()
{
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
}


Serial.println("Goodnight moon!");

// set the data rate for the SoftwareSerial port
mySerial.begin(9600);
mySerial.println("Hello, world?");
}

void loop() // run over and over
{
if (mySerial.available())
    Serial.write(mySerial.read());
if (Serial.available())
    mySerial.write(Serial.read());
}


串口显示如下
Goodnight moon!

����������

我的应该是果云的ESP8266 。。应该算是8266-12吧。IO口全引出。。已经用配套的串口软件连接电脑设置过了,启动自动连接我家WIFI。都没问题。。但是在和arduino串口通信的时候 用模拟串口就出现乱码。。求破!~

Super169 发表于 2015-3-18 22:34:35

Software serial 走 9600 會否太快了.
有嘗試改成用 hardware serial 或降到 4800 測試嗎?你的程式...好像跟 ESP8266 無關的.

bigmango 发表于 2015-3-18 22:55:44

本帖最后由 bigmango 于 2015-3-18 22:58 编辑

Software serial 在 UNO 走9600 完全没有问题.
你看看你的库默认走的是多少,这个模块好像默认是115200的.
我用这个程序可以正常工作.Goodnight moon!
Hello, world?

wrong syntax

ERROR
AT


OK
AT


OK
AT+CIFSR

192.168.0.110

OK
AT+CIFSR

192.168.0.110

OK
AT+CWMODE?

+CWMODE:1

OK
AT+CWLIF


ERROR
AT+CWLIF


ERROR
AT+CWLAP

+CWLAP:(3,"MANGO",-49,"a8:57:4e:2a:fa:a4",1)
+CWLAP:(4,"e-link",-93,"50:bd:5f:49:a5:7c",1)
+CWLAP:(4,"Sandy-KK",-90,"a8:15:4d:c7:96:8a",1)
+CWLAP:(4,"CKK_12D",-88,"1c:fa:68:85:cb:42",6)
+CWLAP:(4,"TP-LINK_42642A",-74,"20:dc:e6:42:64:2a",6)
+CWLAP:(2,"ORICO",-92,"00:e1:40:44:73:fe",9)
+CWLAP:(4,"ChinaNet-UEPx",-85,"28:5f:db:75:d8:30",11)
+CWLAP:(4,"chenbin&zhanke",-81,"14:cf:92:37:f1:8c",11)

OK

martincccc 发表于 2015-3-18 23:50:51

bigmango 发表于 2015-3-18 22:55 static/image/common/back.gif
Software serial 在 UNO 走9600 完全没有问题.
你看看你的库默认走的是多少,这个模块好像默认是115200的.
...

= =我改成115200和4800都试了下。。反正软串口收到的就是乱码。。发送AT有回复信息锝。可是就是乱的。。

martincccc 发表于 2015-3-18 23:59:22

Super169 发表于 2015-3-18 22:34 static/image/common/back.gif
Software serial 走 9600 會否太快了.
有嘗試改成用 hardware serial 或降到 4800 測試嗎?你的程式...好 ...

8266模块通过软串口接在10.11脚上。。。

bigmango 发表于 2015-3-19 00:16:54

我是软的接在2,3上.
不知道你用的是哪个库.我用的是这个,在1.60和1.61上都可以使用.

martincccc 发表于 2015-3-19 00:37:17

bigmango 发表于 2015-3-19 00:16 static/image/common/back.gif
我是软的接在2,3上.
不知道你用的是哪个库.我用的是这个,在1.60和1.61上都可以使用.

能给份你完整的程序看看吗?

hytrao 发表于 2015-3-19 10:48:00

你的loop里用的是if应该改成while,用Uno连接esp时,软串口跟硬串口之间同时接受数据时会产生冲突,出现乱码的,因为他们公用一个中断

martincccc 发表于 2015-3-19 12:20:22

hytrao 发表于 2015-3-19 10:48 static/image/common/back.gif
你的loop里用的是if应该改成while,用Uno连接esp时,软串口跟硬串口之间同时接受数据时会产生冲突,出现乱码 ...

Goodnight moon!

Hello, wo�ld?
!���K5 AT
AT AT
AT AT
AT AT
AT AT
AT AT
AT AT
AT


AT
AT现在变成这种情况了?难道是我这程序有问题吗?为何软串口读取的数据还是AT?根据手册正常值应该是OK。。

bigmango 发表于 2015-3-19 19:34:12

我的程序就是你的呀,你用的是arduino 的串口监视工具吧,这个输出默认是没有回车换行的,下面有个下拉的选项,你改成both cr ln

bigmango 发表于 2015-3-19 19:36:47

另外,这个固件是不忍AT以外的数据的,发hello world是没有意义的
,建议你升级固件到905可以查询和设置gpio口的数据

martincccc 发表于 2015-3-19 19:52:45

bigmango 发表于 2015-3-19 19:36 static/image/common/back.gif
另外,这个固件是不忍AT以外的数据的,发hello world是没有意义的
,建议你升级固件到905可以查询和设置gp ...

发HELLO WORLD是为了检测软串口能否正常工作。。。。。

bigmango 发表于 2015-3-19 19:55:40

无所谓了,你看看发回车换行是不是可以正常了先

bigmango 发表于 2015-3-19 19:56:43

你发一个AT+RST

martincccc 发表于 2015-3-19 20:07:46

bigmango 发表于 2015-3-19 19:56 static/image/common/back.gif
你发一个AT+RST

现在不知道为什么返回不是乱码了。。但是就变成我发送什么返回什么了。。发AT返回AT。
发AT+RST返回也AT+RST发送1返回1。。难道是代码错了?
页: [1] 2 3
查看完整版本: ESP8266 模拟串口返回乱码