51串口通信有个小问题
#include<reg52.h>#define uchar unsigned char
#define uint unsigned int
uchar flag,a,i;
uchar code table[]="i get";
void delay()
{
int i,j;
for(i=0;i<100;i++){
for(j=0;j<500;j++);
}
}
void init(){
TMOD=0X20;
TH1=0XFD;
TL1=0XFD;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
main()
{
init();
while(1){
ES=0;
SBUF='1';
while(!TI);
TI=0;
delay();
}
}用proteus上仿真,串口调试软件,上不断显示111111111
但是自己焊的板子,转成16进制,都是00,00,00如图
javascript:;
1我换了一条串口线,居然又什么数据都读不到了。(换的那条串口线肯定是好的) -----------RS232口我就接了3条线,发射和接收,共地 是不是有些USB转串口线需要9条线都连好才能工作?
2为什么接收到的数据时错误的呢?不是想要的11111呢?
哎,高了半天原来MAX232的VCC和GND口没连线。。。 一般KEIL的模拟仿真正确,基本就可以判断是硬件问题。
页:
[1]