关于arduino与8266联用通过串口能发送不能接收-Arduino中文社区 - Powered by Discuz! Archiver

烂先生 发表于 2020-6-10 14:40

关于arduino与8266联用通过串口能发送不能接收

本帖最后由 烂先生 于 2020-6-10 14:40 编辑

我用mega2560和8266-12f,
接线如下
2560------8266
TX2--------RX
RX2--------TX
也就是通过硬串口2和8266通信,2560发送温湿度数据给8266然后上传到服务器一点问题都没有,但是从8266给2560发送数据就出问题了,比如时间,发送的几个数据过去接收到的要么对应不上,要么就是一堆无规则的数值,我把数据打包成结构体的形式,8266端的程序(部分):

2560端的程序(部分):


其实就是把发送和接收对调而已,格式都是一样的,可2560给8266发数据就可以,8266给2560发数据就不行了,这是为啥呢,有专业人士解答一下吗?要说数据长度问题吧,我也试过只发送一个变量,也换过不同的数据类型,但还是不正常

奈何col 发表于 2020-6-10 14:46

1.确保已经关闭了blinker本身的串口调试
2.降低波特率
3.使用电平转换芯片

烂先生 发表于 2020-6-10 17:27

奈何col 发表于 2020-6-10 14:46
1.确保已经关闭了blinker本身的串口调试
2.降低波特率
3.使用电平转换芯片

1.是注释掉这条就行了吧?一开始我就注释掉了

2.波特率我用115200的时候是下面这样的

数据相对完整,但“年”数值不对而且还跑到最后了,“时”也不对,已经设置8时区了,而且可以看到数据时不时还错位了,波特率改成9600后就乱套了

3.手头上没有硬件,我觉得更多是在软件上修改,因为之前用过其他平台的IOT方案,模块跟开发板之间的通信是非常顺畅的,不过它提供的开发接口和功能方面不如blinker丰富,所以我才想着转到blinker上来,但是目前经过官网和社区的一番搜查,发现blinker在 wifi模块+arduino开发板 的方案上支持不是很多呀

奈何col 发表于 2020-6-11 08:51

直接8266接电脑看数据正常否,这串口通信问题,完全和blinker没关系了

烂先生 发表于 2020-6-11 11:23

奈何col 发表于 2020-6-11 08:51
直接8266接电脑看数据正常否,这串口通信问题,完全和blinker没关系了

8266的数据是正常的,只是想知道是不是blinker的串口收发机制导致的,或者是不是像blinker说明里面提醒的某些地址什么的冲突了,毕竟我没到那个水平所以这些个因素也不太能确定,串口通信的话我用两块arduino试过了没什么问题的

烂先生 发表于 2020-6-11 11:34

希望做过8266+arduino(开发板,不是指IDE)项目的坛友们分享一下经验吶

奈何col 发表于 2020-6-11 14:03

烂先生 发表于 2020-6-11 11:23
8266的数据是正常的,只是想知道是不是blinker的串口收发机制导致的,或者是不是像blinker说明里面提醒的 ...

上面说了,直接8266连电脑看额

烂先生 发表于 2020-6-11 17:36

奈何col 发表于 2020-6-11 14:03
上面说了,直接8266连电脑看额

看过了,8266的串口输出是正常的

而且即便我禁用了调试功能,8266每隔一会也会发送一个数据,类似于心跳一样。所以我才怀疑是不是8266这边我还有哪里没设置好的
页: [1]
查看完整版本: 关于arduino与8266联用通过串口能发送不能接收