TA的每日心情 | 开心 2022-1-29 15:04 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
串口调试助手里发送的数据和接收的数据不一样!?8 `8 E3 F5 G/ F D9 `! S" ?; w
我写得串口程序,功能:单片机接收到一个字节数据后,先保存,然后马上发送出去。我是用串口调试助手来做PC端程序来从PC向单片机发送和接收单片机回传数据的。现在的问题是:从串口调试助手里发送的数据和接收的数据不一样,这是什么原因???双方波特率调的可是一致的,下面是程序:
2 G" y1 j) U& t$ q#include <AT89X51.H>
0 L. f' i3 D* |( D J: U5 j/ D#include <stdio.h>' r' n# u5 m8 h+ s" l( n& N" j$ Z
#define UCHAR unsigned CHAR; B. ?9 a( ~/ t) L* T7 y+ t0 t3 p9 V- L
void main(void)* D' z# [% A. n
{ UCHAR data rcvdata[2],trdata[2];3 Z7 Y6 u* ^" V+ ?" Q
SCON = 0x50; //串口方式1,允许接收
9 |7 K6 ^6 }1 n; X TMOD = 0x20; //定时器1 定时方式2
! b j: U/ K0 a2 w: F% ]* W3 q) l TH1 = 0xFD; //11.0592MHZ 9600 波特率
+ d! y. q K% B& n TL1 = 0xFD;
5 A. F+ C) w/ Q' B* ^ TR1 = 1; //启动定时器- I" ?; j. s8 Z& K2 H' q0 y. ^
while(1)$ G! q( Y# D) v/ P5 D
{$ m* m3 s) m' l3 q( Y
if(RI)
" `7 ` |" k/ X% A' \ {rcvdata[0]=SBUF; //把接收到的数据保存& L5 g- n K6 v- _2 Q( O
RI=0;
6 h* L" @: [6 @# ^5 b+ v SBUF=trdata[0]; //把收到的数据通过串口发送出去
( H5 x) ~; ~' R9 _( [ while(TI);0 L$ _4 W- g8 H j5 S
TI=0;6 {: n: ~& @6 C1 J# W. L5 z( L$ }/ e3 C
}1 F7 \, R8 _, m5 K7 W
}
/ C a: H" `! t}0 `/ u/ H+ ]0 u+ p
|
|