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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    串口调试助手里发送的数据和接收的数据不一样!?3 ^) A1 Z+ u9 R: s
    我写得串口程序,功能:单片机接收到一个字节数据后,先保存,然后马上发送出去。我是用串口调试助手来做PC端程序来从PC向单片机发送和接收单片机回传数据的。现在的问题是:从串口调试助手里发送的数据和接收的数据不一样,这是什么原因???双方波特率调的可是一致的,下面是程序:
    * H6 W4 T% P3 N#include <AT89X51.H>
      d+ ~; N8 W1 j#include <stdio.h>" {8 @0 h% J- D( k
    #define UCHAR unsigned CHAR7 \3 w+ K2 w, Z  Y1 q& T
    void main(void); L8 d9 o% Q' w9 D5 x
    { UCHAR data rcvdata[2],trdata[2];
    1 K0 y% P; t2 U  SCON = 0x50; //串口方式1,允许接收" I% S+ a9 b( j$ }, n
      TMOD = 0x20; //定时器1 定时方式2+ [! Z" L9 W% b- I
      TH1 = 0xFD; //11.0592MHZ 9600 波特率
    * k/ V" u* _3 t* O8 S6 L2 Y) @* }  TL1 = 0xFD;0 w- q7 [' _' O5 E) N1 ?
      TR1 = 1; //启动定时器
    - Y3 ^8 n- |+ }, a    while(1)# R3 A+ u9 b% ^. E4 H
      {
    / O/ Z4 q7 o2 B5 @( ?$ p2 r' G; y. q    if(RI)
    + A: l: P* J* T/ S- |    {rcvdata[0]=SBUF;  //把接收到的数据保存  J8 \9 Z+ `0 L) i
         RI=0;
    - F8 v( L4 {% n2 w- Y     SBUF=trdata[0];   //把收到的数据通过串口发送出去% R' \& p2 B# G) n% l" J9 L0 U
         while(TI);
    2 K: f/ L1 P: r# [; O! t- @% @     TI=0;% t2 t: Q0 f' E! S2 l( r
        }* S4 v" `4 W5 b
      }/ K/ @" ?! N6 ]) X9 J6 l( z
    }+ U8 x6 f  m+ h! a0 s
  • TA的每日心情
    开心
    2022-1-29 15:07
  • 签到天数: 2 天

    [LV.1]初来乍到

    2#
    发表于 2022-6-15 13:10 | 只看该作者
    发同样的数据,收到的却不一样/ I& S+ M) ]; k% \: n& `1 u7 H
    我又试了一下,发同样的数据,收到的却不一样。上面的程序,我刚才贴的时候改了一下,有些笔误,应该是:
    % A' R/ R% _) v7 L4 k1 HSBUF=rcvdata[0];   //把收到的数据通过串口发送出去
  • TA的每日心情
    奋斗
    2022-1-21 15:15
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2022-6-15 13:16 | 只看该作者
    具体怎么不一样呢?有没有什么规律?; C. `7 B5 U; [$ g$ f- @- U
    换一个调试助手试一试呢?0 `" s1 C0 q4 B
    用中断接收呢?
    5 J8 T! N& n9 d1 ?" B% d8 I

    该用户从未签到

    4#
    发表于 2022-6-15 13:27 | 只看该作者
    先查一下硬件
    / e9 Y+ c! C3 a! c1、看看你的晶震是不是11.0592MHZ
    + F4 C0 h0 i" ^7 x& f& d2、检查一下两端的模式设置是否相同,通常单片机端为一位启始位,8位数据位,一位停止位。4 l9 e2 D6 ?0 Z* P( k. G
    3、启动接收进程前清一下接受缓冲区
  • TA的每日心情
    开心
    2022-1-29 15:03
  • 签到天数: 2 天

    [LV.1]初来乍到

    5#
    发表于 2022-6-15 13:28 | 只看该作者
    一次发一个数据的吗??5 V+ p: q7 ^" g) t4 ?
    你的程序好像一次只能发一个数据吧。接受和发送都要选择16进制的吧?
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-16 21:55 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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