TA的每日心情 | 开心 2022-1-29 15:04 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
串口调试助手里发送的数据和接收的数据不一样!?
! Y7 ^; a4 H1 l' Z2 z$ @6 D2 ]6 l我写得串口程序,功能:单片机接收到一个字节数据后,先保存,然后马上发送出去。我是用串口调试助手来做PC端程序来从PC向单片机发送和接收单片机回传数据的。现在的问题是:从串口调试助手里发送的数据和接收的数据不一样,这是什么原因???双方波特率调的可是一致的,下面是程序:/ Z" k m, B/ z( k7 J
#include <AT89X51.H>" ^, ], G& E$ s! m
#include <stdio.h>
3 f: S9 L! Y/ R# y9 x) W. z#define UCHAR unsigned CHAR& n6 j& o# {6 T! ?
void main(void)
! R0 C: { h$ I/ ]9 _{ UCHAR data rcvdata[2],trdata[2];
. g$ x; A9 n! E5 F7 x/ _ SCON = 0x50; //串口方式1,允许接收( U. h' p. V# ]
TMOD = 0x20; //定时器1 定时方式2
8 C4 |) I0 z* M TH1 = 0xFD; //11.0592MHZ 9600 波特率: H# Z" t# ~" \' c) @8 u4 j7 ~
TL1 = 0xFD;
8 d- f7 q$ e4 o4 L$ @3 z$ J, D TR1 = 1; //启动定时器9 O7 }$ A! p+ H; H
while(1)
. R( \+ f- _$ L7 M {
: A$ P( n& ]! ^% Z$ Z' t if(RI)
5 R1 `) ?) ?) a7 k5 K, O# b {rcvdata[0]=SBUF; //把接收到的数据保存
( Z2 {: e3 X9 Q RI=0;
1 K( i2 K, k5 B" X* { V SBUF=trdata[0]; //把收到的数据通过串口发送出去' P$ q" L* Z, R; g
while(TI);
- o/ ^- T/ s) J% n TI=0;
) a' n6 w% P# N: J6 u9 y. S3 l4 T }. T: P1 ?3 Y2 v# h6 t b4 R
}: A. q' s0 f3 R8 Y4 Z0 P
}
+ x9 V( U2 i! Z, ]5 V: i |
|