• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

串口发送和对方接受顺序问题

13783538174 2018-05-07 浏览量:1649
我用一个主控的USART向另一个主控发送连续的两个数据,怎样能让接收方按顺序读取到数据呢,比如我发送的是16的数据,先发高后发低,然后接受方把第一个数存放在数组的第一个位置,然后再存放第二个数在数组第二个位置,但是为什么接收方只能在数组的第一个位置接收到数据,第二个位置一直是0(每次进入接收中断才将串口接收的数据存放的数组位置更改一次)
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 调试一下,在接收第二个字节的时候是否是接收到了正确的数组,如果数据都么有接收正确,串口驱动有问题,如果接收到正确数据,防止数据到数组的时候的代码有问题,总之基本可以判定一是代码问题,通过单步调试查找问题所在吧。
    • 发布于 2018-05-07
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 明显是你的代码实现问题,串口通信如果这样两个字节都接收不了,也就没的玩了,把你的代码抛出来看一下,或者数据量大的话可以用一个队列操作去实现
    • 发布于2018-05-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是你代码逻辑不严谨  一般接收多个数据的时候要用一个变量判断是接收了几次
    • 发布于2018-05-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 很明显是你的程序问题了。你想分开调试好接收和发送的程序,之后在组合联调,这样就清晰明了,不然像现在你都不知道是发送出问题了还是接收出问题了。
    • 发布于2018-05-07
    • 举报
    • 评论 0
    • 0
    • 0

  • 是不是使用的HAL库,要设置接收到2字节后才进中断,而且进中断后,也要清中断标志。
    或都是,你数据发送太快,接收太慢,丢掉了后一个数据。
    • 发布于2018-05-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 串口的程序应该是不断接收的,如果你在收到一次中断之后关闭中断了一段时间有可能会出现这种现象
    • 发布于2018-05-11
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是逻辑代码不够清晰,接受可以采用中断,但是发送不用
    • 发布于2018-05-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为串口默认是单字的  你要自己处理一下变成字符  字符串的

    你不能看到别人的例程都是OK的  别人也是修改过的

    • 发布于2018-05-14
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

串口发送和对方接受顺序问题