极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 104747|回复: 31

ESP8266 模拟串口返回乱码

[复制链接]
发表于 2015-3-18 21:46:20 | 显示全部楼层 |阅读模式
代码如下

  1. #include <SoftwareSerial.h>

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

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


  10.   Serial.println("Goodnight moon!");

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

  15. void loop() // run over and over
  16. {
  17.   if (mySerial.available())
  18.     Serial.write(mySerial.read());
  19.   if (Serial.available())
  20.     mySerial.write(Serial.read());
  21. }
复制代码


串口显示如下
  1. Goodnight moon!

  2. &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;
复制代码


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

使用道具 举报

发表于 2015-3-18 22:34:35 | 显示全部楼层
Software serial 走 9600 會否太快了.
有嘗試改成用 hardware serial 或降到 4800 測試嗎?  你的程式...好像跟 ESP8266 無關的.
回复 支持 反对

使用道具 举报

发表于 2015-3-18 22:55:44 | 显示全部楼层
本帖最后由 bigmango 于 2015-3-18 22:58 编辑

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

  3. wrong syntax

  4. ERROR
  5. AT


  6. OK
  7. AT


  8. OK
  9. AT+CIFSR

  10. 192.168.0.110

  11. OK
  12. AT+CIFSR

  13. 192.168.0.110

  14. OK
  15. AT+CWMODE?

  16. +CWMODE:1

  17. OK
  18. AT+CWLIF


  19. ERROR
  20. AT+CWLIF


  21. ERROR
  22. AT+CWLAP

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

  31. OK
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-18 23:50:51 | 显示全部楼层
bigmango 发表于 2015-3-18 22:55
Software serial 在 UNO 走9600 完全没有问题.
你看看你的库默认走的是多少,这个模块好像默认是115200的.
...

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

使用道具 举报

 楼主| 发表于 2015-3-18 23:59:22 | 显示全部楼层
Super169 发表于 2015-3-18 22:34
Software serial 走 9600 會否太快了.
有嘗試改成用 hardware serial 或降到 4800 測試嗎?  你的程式...好 ...

8266模块通过软串口接在10.11脚上。。。
回复 支持 反对

使用道具 举报

发表于 2015-3-19 00:16:54 | 显示全部楼层
我是软的接在2,3上.
不知道你用的是哪个库.我用的是这个,在1.60和1.61上都可以使用.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-19 00:37:17 | 显示全部楼层
bigmango 发表于 2015-3-19 00:16
我是软的接在2,3上.
不知道你用的是哪个库.我用的是这个,在1.60和1.61上都可以使用.

能给份你完整的程序看看吗?
回复 支持 反对

使用道具 举报

发表于 2015-3-19 10:48:00 | 显示全部楼层
你的loop里用的是if应该改成while,用Uno连接esp时,软串口跟硬串口之间同时接受数据时会产生冲突,出现乱码的,因为他们公用一个中断
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-19 12:20:22 | 显示全部楼层
hytrao 发表于 2015-3-19 10:48
你的loop里用的是if应该改成while,用Uno连接esp时,软串口跟硬串口之间同时接受数据时会产生冲突,出现乱码 ...
  1. Goodnight moon!

  2. Hello, wo&#65533;ld?
  3. !&#65533;&#65533;&#65533;K5[SEND] AT
  4. AT[SEND] AT
  5. AT[SEND] AT
  6. AT[SEND] AT
  7. AT[SEND] AT
  8. AT[SEND] AT
  9. AT[SEND] AT
  10. AT[SEND]
  11. [SEND]
  12. [SEND]
  13. [SEND] AT
  14. AT
复制代码
现在变成这种情况了?难道是我这程序有问题吗?为何软串口读取的数据还是AT?  根据手册正常值应该是OK。。
回复 支持 反对

使用道具 举报

发表于 2015-3-19 19:34:12 | 显示全部楼层
我的程序就是你的呀,你用的是arduino 的串口监视工具吧,这个输出默认是没有回车换行的,下面有个下拉的选项,你改成both cr ln
回复 支持 反对

使用道具 举报

发表于 2015-3-19 19:36:47 | 显示全部楼层
另外,这个固件是不忍AT以外的数据的,发hello world是没有意义的
,建议你升级固件到905可以查询和设置gpio口的数据
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-19 19:52:45 | 显示全部楼层
bigmango 发表于 2015-3-19 19:36
另外,这个固件是不忍AT以外的数据的,发hello world是没有意义的
,建议你升级固件到905可以查询和设置gp ...

发HELLO WORLD是为了检测软串口能否正常工作。。。。。
回复 支持 反对

使用道具 举报

发表于 2015-3-19 19:55:40 | 显示全部楼层
无所谓了,你看看发回车换行是不是可以正常了先
回复 支持 反对

使用道具 举报

发表于 2015-3-19 19:56:43 | 显示全部楼层
你发一个AT+RST
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-19 20:07:46 | 显示全部楼层
bigmango 发表于 2015-3-19 19:56
你发一个AT+RST

现在不知道为什么返回不是乱码了。。但是就变成我发送什么返回什么了。。发AT返回AT。
发AT+RST  返回也AT+RST  发送1返回1。。难道是代码错了?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 08:36 , Processed in 0.046167 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表