查看: 6827|回复: 13

[讨论] 串口数据输出异常可能是什么原因导致的?

[复制链接]

该用户从未签到

29

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
355
最后登录
2019-1-28
发表于 2016-6-15 15:49:07 | 显示全部楼层 |阅读模式
我现在用K60的串口连接了USB转RS-485接口然后又与电脑相连,通过串口助手查看串口输出的数据
我在调试时通过IAR的变量查看功能,看到数组中的值如下
QQ截图20160615153609.png
但是通过串口助手打印出的值如下
QQ截图20160615153647.png
这个错误可能是什么原因导致的呢?有没有可能是我程序的原因?
回复

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24882
最后登录
2025-7-20
发表于 2016-6-15 15:52:00 | 显示全部楼层
楼主,你是一桢发的吗?
一桢几个字节?两个字节?
现在是MCU 发送0X31,但是串口收到0XFD?
除了这个,有没有其他的字节出错,你多发几个0XFD试试。
回复 支持 反对

使用道具 举报

该用户从未签到

29

主题

104

帖子

0

中级会员

Rank: 3Rank: 3

积分
355
最后登录
2019-1-28
 楼主| 发表于 2016-6-15 16:00:22 | 显示全部楼层
小恩GG 发表于 2016-6-15 15:52
楼主,你是一桢发的吗?
一桢几个字节?两个字节?
现在是MCU 发送0X31,但是串口收到0XFD?

恩,是一帧发的,一次发两个字节,有时候正常,有时候不正常。
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24882
最后登录
2025-7-20
发表于 2016-6-15 17:03:30 | 显示全部楼层
天天都有好心情 发表于 2016-6-15 16:00
恩,是一帧发的,一次发两个字节,有时候正常,有时候不正常。

用示波器看看,跟下不正常的时候,传输线上的数据对不对。
还有波特率也注意下,是不是波特率又偏差了。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-10-25 09:15
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    13

    主题

    430

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1385
    最后登录
    2018-6-13
    发表于 2016-6-15 17:09:55 | 显示全部楼层
    都是第二个字节不正常吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29

    主题

    104

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    355
    最后登录
    2019-1-28
     楼主| 发表于 2016-6-15 19:34:40 | 显示全部楼层
    hellokity 发表于 2016-6-15 17:09
    都是第二个字节不正常吗?

    不是只有第二个字节不正常,有时候第一个不正常,有时候都不正常,有时候干脆没数据了,但是我通过IAR的查看窗口看到的数据全是正常的,就是通过串口助手观察的时候不正常了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29

    主题

    104

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    355
    最后登录
    2019-1-28
     楼主| 发表于 2016-6-15 19:37:19 | 显示全部楼层
    小恩GG 发表于 2016-6-15 17:03
    用示波器看看,跟下不正常的时候,传输线上的数据对不对。
    还有波特率也注意下,是不是波特率又偏差了。 ...

    恩,我还没用示波器看过,波特率偏差这个问题不大,我之前用示波器分别测过串口助手和单片机的波特率,差别不大。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    712

    主题

    6371

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    24882
    最后登录
    2025-7-20
    发表于 2016-6-16 09:26:24 | 显示全部楼层
    天天都有好心情 发表于 2016-6-15 19:37
    恩,我还没用示波器看过,波特率偏差这个问题不大,我之前用示波器分别测过串口助手和单片机的波特率,差 ...

    那么现在你那边如果出现串口助手接收数据不准确,是否有规律,是每次都是最后一个字节有问题还是包中任意字节都可能有问题?
    建议你还是用示波器看下通信数据,看看是MCU发出来就不对,还是串口助手接到的有问题,只是波特率偏了导致的。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-10-22 10:33
  • 签到天数: 30 天

    连续签到: 1 天

    [LV.5]常住居民I

    5

    主题

    422

    帖子

    1

    高级会员

    Rank: 4

    积分
    983
    最后登录
    2024-10-22
    发表于 2016-6-16 13:36:36 | 显示全部楼层
    请检查485的收发控制脚, 估计是在发送未完成之前,改成了接收功能。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29

    主题

    104

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    355
    最后登录
    2019-1-28
     楼主| 发表于 2016-6-16 13:53:39 | 显示全部楼层
    dongshan_1949 发表于 2016-6-16 13:36
    请检查485的收发控制脚, 估计是在发送未完成之前,改成了接收功能。

    恩,多谢提醒,RS-485使能引脚在切换的时候,我加了1ms的延时,这个时间应该足够数据传输完成了。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-20 23:58 , Processed in 0.101883 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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