单片机向电脑通过串口发送数据程序如下,为什么在串口调试助手上看不到传输的8个数据呢?急求高手解答~~

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char //定义uchar为无符号
#define uint unsigned int //定义uint为无符号整型
uchar code data1[]={0xFE,0xFD,0xFA,0xF7,0xEF,0xDF,0xAF,0x7F};
void delayms(int xms) //延时函数
{
int i, j;
for(i=0;i<xms;i++)
for(j=0;j<250;j++);
}
void main() //[email protected]
{
unsigned char i;
//unsigned char dat;
TMOD=0x20;
SCON=0x40;
PCON=0x00;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SM0=0;
SM1=1;
while(1)
{
//ledlight();
for(i=0;i<8;i++) //模拟检测数据
{
SBUF=data1[i];
P1=data1[i] ;
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
delayms(15) ;
}
}

}

你可以先排除硬件问题,检查一下是不是硬件出问题了,建议你去看一本书,吴鉴鹰单片机实战精讲,能下到电子版,里面关于通讯调试的方法讲的很详细。追问

嗯嗯,谢谢!现在我发现是之前串口线连接有问题,现在传输的数据在串口调试助手显示的是乱码,我明明输入的十六进制,在调试助手上显示的就不正确,可以请问一下是什么原因吗?

温馨提示:答案为网友推荐,仅供参考
相似回答