查看: 7172|回复: 21

[其他] 串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

[复制链接]

该用户从未签到

7

主题

66

帖子

0

注册会员

Rank: 2

积分
155
最后登录
2020-12-15
发表于 2012-12-26 14:16:40 | 显示全部楼层 |阅读模式
我用的是MPC5604P单片机,串口配置为波特率:38400,接收和发送缓冲器大小为1字节,数据位8位,并配置接收完成中断和发送完成中断。在接收完成中断中,将缓冲器的内容读给一个数组。当我用串口助手一次发送一个字节时,通过调试,发现每次接收即数组中的元素都是正确的,但是,当我一次发送4个字节或者更多时,缓冲器接收即数组中的元素偶尔会有几个元素错误的,能告诉我有可能是哪些方面引起的吗?比如我一次发送:0x11 0x12 0x00 0x23 0x45 0x69 0x85 0x47时,接收缓冲器中数组内容:0x11 0x12 0x00 0x00 0x45 0x69 0x85 0x47。上述错误概率随着一次发送字节数变多而变大。
我知道答案 目前已有20人回答
回复

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-12-26 15:44:37 | 显示全部楼层

    RE:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    应该是缓冲区数据处理的问题,在中断中,接收到数据就放到缓冲区中。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    155
    最后登录
    2020-12-15
     楼主| 发表于 2012-12-26 18:41:38 | 显示全部楼层

    回复:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    回复第 2 楼 于2012-12-26 15:44:37发表:
    应该是缓冲区数据处理的问题,在中断中,接收到数据就放到缓冲区中。 

    嗯,我就是在中断中读出缓冲器的数据,放进数组。逻辑上感觉没什么不对的地方。今天我换了个电源,情况有好转,但接收也并非完全准确,但比之前好多了,难道是电源电压不稳定,接收时电平变化导致接收数据错误码?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-12-27 10:51:00 | 显示全部楼层

    RE:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    那可能是你的串口波特率的问题,你串口波特率配置仔细看一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    155
    最后登录
    2020-12-15
     楼主| 发表于 2012-12-27 12:25:00 | 显示全部楼层

    回复:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    回复第 4 楼 于2012-12-27 10:51:00发表:
    那可能是你的串口波特率的问题,你串口波特率配置仔细看一下。 

    我设置的波特率是38400,但是计算时,配置波特率的寄存器,其中一个应该设置为3.333333,由于不能写小数,故写入3.这种误差每个串口都会有的,能引起那样的错误吗?我设置串口助手的波特率也是38400,数据一个一个发送都没有错误。但是一次性发送多个数据,中间偶尔就会出现错误。麻烦问下,一次性发多个数据,和一次性发一个数据之间有什么不同吗?而且我检查发现,一旦出现错误,供电电源上显示的电流发生了变化,我使用的是开关电源。正常情况下电流是0.09A,出现错误后电流变为0.11A。安帮主能否帮我解答下,感激不尽啊!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    2

    帖子

    0

    新手上路

    Rank: 1

    积分
    27
    最后登录
    2019-2-24
    发表于 2012-12-27 13:18:52 | 显示全部楼层

    RE:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    你用现在设定的值计算一下波特率
    异步通信,没有时钟,如果偏差太大会有问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    155
    最后登录
    2020-12-15
     楼主| 发表于 2012-12-27 16:09:28 | 显示全部楼层

    回复:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    回复第 6 楼 于2012-12-27 13:18:52发表:
    你用现在设定的值计算一下波特率
    异步通信,没有时钟,如果偏差太大会有问题。
     

    我算了下,我设置的波特率实际上只有38392,但是这种频率误差很小,而且不是累计的啊。一般串口通信错误都是和波特率有关系,但是我换了个电源,情况就变好很多。我真心觉得这和电源稳压性能有关。但是又没有依据。你可知道这里面有什么关联吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-12-28 09:54:36 | 显示全部楼层

    RE:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    这个问题我也纠结过,你把他调成4。还有,你的串口是直接连接还是通过232来转换的?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    155
    最后登录
    2020-12-15
     楼主| 发表于 2012-12-28 10:24:58 | 显示全部楼层

    回复:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    回复第 8 楼 于2012-12-28 09:54:36发表:
    这个问题我也纠结过,你把他调成4。还有,你的串口是直接连接还是通过232来转换的? 

    后面的小数我是安四舍五入法设置的,3.333就写3,2.66667我也写3。我多试几个值看看。我的串口电平是通过3232转换的。3232资料上显示使用电容理论值为100nf,由于没有,我使用的是220nf。不知道这个是否对其也有影响。而且当通信异常时,开关电源上显示电流由0.09A变为0.11A(电压不变),此时我重新拔出串口再次插入。电流只有恢复为0.09A时,才能够再次正常通信。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-12-29 10:18:30 | 显示全部楼层

    RE:串口接收的问题,纠结了很长时间了,麻烦大家帮帮忙

    这样,你用MPC上面的串口自己发自己收,看看数据是不是会乱?如果不会,那么可能是由于线路干扰的问题。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-8-2 20:09 , Processed in 0.101828 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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