极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23319|回复: 10

关于串口接收数据异常的问题

[复制链接]
发表于 2016-2-24 19:38:01 | 显示全部楼层 |阅读模式
大家好,最近在做一个项目使用arduino进行采集传感器的数据,发现一个问题就是,数据有时会出现乱码或者缺少字符,不知道为什么,请大侠能够解释或者讨论一下。

  1. 025
  2. OPEN
  3. 02�
  4. 025
  5. 025
  6. 025
复制代码

  1. 032
  2. OPEN
  3. �32
  4. Closed
  5. 031
  6. Closed
复制代码

  1. 024
  2. OPEN
  3. 0橫
  4. 023
  5. 023
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-2-24 19:45:21 | 显示全部楼层
还有就是发现使用USB供电的时候没有出现
回复 支持 反对

使用道具 举报

发表于 2016-2-24 21:12:05 | 显示全部楼层
你先试试什么传感器都不接,生成有规律的字符输出,如果还有问题,那么是你线路不良,或者芯片有问题;

如果没有问题,有可能是你传感器供电导致的(你传感器从arduino取电吧?)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-24 21:59:35 | 显示全部楼层
zoologist 发表于 2016-2-24 21:12
你先试试什么传感器都不接,生成有规律的字符输出,如果还有问题,那么是你线路不良,或者芯片有问题;

...

如果通过AD采集传感器数据的话建议使用arduino上的供电吗?
回复 支持 反对

使用道具 举报

发表于 2016-2-25 15:08:02 | 显示全部楼层
anduony 发表于 2016-2-24 21:59
如果通过AD采集传感器数据的话建议使用arduino上的供电吗?

个人不建议唉~  

主要是功率可能不够
回复 支持 反对

使用道具 举报

发表于 2016-2-25 17:02:01 | 显示全部楼层
楼主是用arduino接max485模块然后连数据采集器吧,能把代码分享一下吗
回复 支持 反对

使用道具 举报

发表于 2016-2-25 18:57:11 | 显示全部楼层
你是发的字符串码?我觉得你还是获得更清楚一点,现在不知道你用的是什么方式怎么操作以及要做什么,只有这么一个现象。如果你是通过串口那就看看你的通讯速率,编码方式,还有你用的电路。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-25 21:49:06 | 显示全部楼层
rick_hou 发表于 2016-2-25 18:57
你是发的字符串码?我觉得你还是获得更清楚一点,现在不知道你用的是什么方式怎么操作以及要做什么,只有这 ...

你好,是这样的,我是使用UNO(通过模拟AD转换采集数据电阻值)采集数据通过串口发送到MEGA2560的串口1,串口1接收到数据后通过toInt()函数把字符串转换成整数型数据进行判断,判断数据是否在要求的范围内。
现在确定的是通讯速率这个没有问题
发送的是字符串
回复 支持 反对

使用道具 举报

发表于 2016-2-26 11:51:59 | 显示全部楼层
anduony 发表于 2016-2-25 21:49
你好,是这样的,我是使用UNO(通过模拟AD转换采集数据电阻值)采集数据通过串口发送到MEGA2560的串口1, ...

UNO是和2560直接连接的吗?距离有多远?我采集的数据也有模拟量,也是类似你这样的方式,不过我是通过485传输,距离最远大约是200米,编码采用十六进制,用了crc校验。字符串发送效率较低。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-26 12:35:38 | 显示全部楼层
rick_hou 发表于 2016-2-26 11:51
UNO是和2560直接连接的吗?距离有多远?我采集的数据也有模拟量,也是类似你这样的方式,不过我是通过485 ...

我的是直接串口连结进行测试,直接使用的是杜邦线连的,没有多远。你使用485方式是不是还需要转换呢?昨天晚上测试发现如果GND线接触不良的化会产生很多乱码,但是现在还不能排除是哪的问题,因为通过串口监控UNO采集的数据时发现很稳定没有出现问题,同时mega也稳定,现在还在问题查找中。
我想通过GPRS进行两个模块的数据传输,这星期进行测试。
对了,你的校验怎么实现,这方面没有经验。
回复 支持 反对

使用道具 举报

发表于 2016-2-26 12:52:16 | 显示全部楼层
anduony 发表于 2016-2-26 12:35
我的是直接串口连结进行测试,直接使用的是杜邦线连的,没有多远。你使用485方式是不是还需要转换呢?昨天 ...

485是应付长距离的通讯,所以你这么近的距离自然不需要了。地线是一定要接好的,串口通讯共地,一般不会出现问题的。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 07:16 , Processed in 0.036345 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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