TA的每日心情 | 开心 2022-1-29 15:04 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
串口调试助手里发送的数据和接收的数据不一样!?; K9 r" |7 k0 [* A t# ?8 C
我写得串口程序,功能:单片机接收到一个字节数据后,先保存,然后马上发送出去。我是用串口调试助手来做PC端程序来从PC向单片机发送和接收单片机回传数据的。现在的问题是:从串口调试助手里发送的数据和接收的数据不一样,这是什么原因???双方波特率调的可是一致的,下面是程序:
$ N! v d& M2 v#include <AT89X51.H>* r/ ?0 z4 N" J5 g
#include <stdio.h>
. {6 k$ Y5 G/ @8 j#define UCHAR unsigned CHAR
: p3 C& R- v0 s3 Z, o" [- [# b: c4 Xvoid main(void)
( K$ o5 r; }( P6 n3 f0 ~7 q Q{ UCHAR data rcvdata[2],trdata[2];; [8 w [8 i5 D" o
SCON = 0x50; //串口方式1,允许接收8 M% @/ D7 H3 `" T/ {
TMOD = 0x20; //定时器1 定时方式2
0 d: l3 t# P8 m# W1 | E) J) r. u TH1 = 0xFD; //11.0592MHZ 9600 波特率
% t# w8 ], @: ?5 E' `" {% g! l( O5 B TL1 = 0xFD;6 G) l1 \$ N9 _0 A
TR1 = 1; //启动定时器$ G" {; N8 g3 s: j
while(1)
6 E1 Y1 ~' Q8 P& J7 o {
6 e* N F5 Z5 \/ k) V if(RI)
0 i6 B( Z( G7 E* W {rcvdata[0]=SBUF; //把接收到的数据保存. [0 e: @) ?# C* U
RI=0;9 Q# }0 }$ L* }& d7 V, H; n
SBUF=trdata[0]; //把收到的数据通过串口发送出去& o$ O2 L, G7 i( U" Q+ S: i
while(TI);# t% X6 l( H( M! a0 a" f% s
TI=0;
t- }. X# L& G! w1 G% ~. W | I; Q$ p( I }
0 }# L; ^4 J/ A# ]. d! [ }( m9 \8 j$ D2 G7 P) N7 d
}
+ }: A; n( x1 r. i |
|