TA的每日心情 | 开心 2022-1-29 15:04 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
串口调试助手里发送的数据和接收的数据不一样!?& B0 E: C% N7 g3 s1 O$ D$ I
我写得串口程序,功能:单片机接收到一个字节数据后,先保存,然后马上发送出去。我是用串口调试助手来做PC端程序来从PC向单片机发送和接收单片机回传数据的。现在的问题是:从串口调试助手里发送的数据和接收的数据不一样,这是什么原因???双方波特率调的可是一致的,下面是程序:1 z0 E% X+ ~4 A2 X( r5 v9 c& W. d
#include <AT89X51.H>7 I, C* ?* J1 h% i; M
#include <stdio.h>
% J4 {6 r+ K- t6 a; `2 P7 i#define UCHAR unsigned CHAR
. i* S% Z4 }6 z& q1 [void main(void)0 C; `+ f! L* n; j0 S1 ? t1 J" t+ o
{ UCHAR data rcvdata[2],trdata[2];$ z( r' W; q2 M$ q$ @
SCON = 0x50; //串口方式1,允许接收0 `7 H" B' K- e, I- d9 S, A+ _/ Z
TMOD = 0x20; //定时器1 定时方式23 I! J4 P4 r' M8 r7 z& d
TH1 = 0xFD; //11.0592MHZ 9600 波特率
1 X2 ~% u- x( e3 G) I TL1 = 0xFD;+ I1 b, P; }, [- ^- g6 l1 e
TR1 = 1; //启动定时器8 {1 D+ P, A+ z+ p' w) A
while(1)! p" t+ l0 L; W7 m
{, m! Z* K0 }/ D' @/ [4 ~$ o
if(RI)
( R9 m' r1 D% s. u& ^: @ {rcvdata[0]=SBUF; //把接收到的数据保存
- Z$ ~! ~6 B) ^0 z0 P* [! ~ RI=0;5 Z. A( G/ t: s, A$ S
SBUF=trdata[0]; //把收到的数据通过串口发送出去* Y# R ?/ t4 K3 _* G
while(TI);
- I# M- f/ s) a8 V TI=0;
+ w- D& J4 p/ D" a% w6 U" e3 | }6 Y% f% `2 K, ~& t9 m1 P
}$ M9 @! T1 ] m
}1 ~3 x; }5 e) x2 L8 C4 t
|
|