TA的每日心情 | 开心 2022-1-29 15:04 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
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
|
|