找回密码
 注册
关于网站域名变更的通知
查看: 309|回复: 4
打印 上一主题 下一主题

串口调试助手里发送的数据和接收的数据不一样?

[复制链接]
  • TA的每日心情
    开心
    2022-1-29 15:04
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2022-6-15 11:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    串口调试助手里发送的数据和接收的数据不一样!?! q; k4 K/ [0 D- V/ Y/ q' j9 R
    我写得串口程序,功能:单片机接收到一个字节数据后,先保存,然后马上发送出去。我是用串口调试助手来做PC端程序来从PC向单片机发送和接收单片机回传数据的。现在的问题是:从串口调试助手里发送的数据和接收的数据不一样,这是什么原因???双方波特率调的可是一致的,下面是程序:- h0 r) V+ a+ S+ C
    #include <AT89X51.H>2 r# H0 H1 L+ K6 Z% j9 M
    #include <stdio.h>$ o: ^' k% Q' u1 R% b. m: e
    #define UCHAR unsigned CHAR3 R- W' @/ E3 _
    void main(void)* D0 `5 K& r! l+ z
    { UCHAR data rcvdata[2],trdata[2];4 Q6 t& U* X$ d  ?; R# ^
      SCON = 0x50; //串口方式1,允许接收
    4 ~  u1 [9 y$ S/ N  TMOD = 0x20; //定时器1 定时方式2# A; Y6 g( f( y( S
      TH1 = 0xFD; //11.0592MHZ 9600 波特率( d: u7 T' _; V, I
      TL1 = 0xFD;
    9 _' h$ R$ B9 @, h4 A8 f  TR1 = 1; //启动定时器6 @" I) ~' o# p% Y
        while(1)
    % `% v" ^/ k$ ~9 D7 H" W6 l  {, x6 U7 D; M: G) ]8 p
        if(RI)
    ; x: p7 ~; k) n6 @4 y0 n    {rcvdata[0]=SBUF;  //把接收到的数据保存
    # g9 h( x7 Q; _- x6 P8 M     RI=0;& T$ @6 o* b* Z$ S8 I: L
         SBUF=trdata[0];   //把收到的数据通过串口发送出去9 h: X4 O; G8 @7 s
         while(TI);
    $ r( K" s3 A. {& T7 S! I     TI=0;
    ( x% O* J9 X% `2 o( H    }
    ' M5 E6 V- p1 _+ Z/ I3 J5 ~) s  }5 F9 Y6 ^; Y' D2 f1 _9 }% N1 x7 ?
    }
    9 ]* h; o  P! s( M
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2022-6-15 13:10 | 只看该作者
    发同样的数据,收到的却不一样
    ) L: W. c; x, k3 m; H* n我又试了一下,发同样的数据,收到的却不一样。上面的程序,我刚才贴的时候改了一下,有些笔误,应该是:0 @  u: e4 [0 `% R6 g9 B
    SBUF=rcvdata[0];   //把收到的数据通过串口发送出去
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-6-15 13:16 | 只看该作者
    具体怎么不一样呢?有没有什么规律?
    / C7 z8 V# L3 y" }0 V7 _换一个调试助手试一试呢?
    8 c* ~9 O/ w) p; a用中断接收呢?" F" t: A6 P( G

    该用户从未签到

    4#
    发表于 2022-6-15 13:27 | 只看该作者
    先查一下硬件9 n2 n: j# H! _
    1、看看你的晶震是不是11.0592MHZ
    / B3 Z; g5 N, M2 c2 P7 z2、检查一下两端的模式设置是否相同,通常单片机端为一位启始位,8位数据位,一位停止位。
    0 j  r1 t9 R! M$ R+ o9 c. x$ ]3、启动接收进程前清一下接受缓冲区
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    5#
    发表于 2022-6-15 13:28 | 只看该作者
    一次发一个数据的吗??
    * q. S) V* x  O& w/ M你的程序好像一次只能发一个数据吧。接受和发送都要选择16进制的吧?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-22 01:16 , Processed in 0.078125 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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