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