发现了
proteus论坛,再发个求教贴。
实现单片机向PC端单方向数据传输,在串口调试助手显示。现在显示出来的数据都是乱码,一般这种都有什么原因?程序?还是波特率?或者其他?目前的程序是这样的:
#include<reg51.h>
void initSer();
uchar sendFlag = 0;
uchar receFlag =0;
code uchar SHUOMING0[] = "****************************
";
code uchar SHUOMING1[] = "哈哈哈哈";
code uchar SHUOMING2[] = "哈哈哈哈";
code uchar SHUOMING3[] = "****************************
";
void sendChar(uchar sendValue);
void sendAll(uchar *pValue);
void serInt() interrupt 4
{
if(RI)
{
RI = 0;
receFlag=1;
}
if(ti)
{
TI = 0;
sendFlag = 0;
}
}
void sendChar(uchar Value)
{
SBUF = Value;
sendFlag = 1;
while(sendFlag);
}
void sendAll(uchar *pValue)
{
while((*pValue) != ' ')
{
sendChar(*pValue);
pValue++;
}
}
void initSer()
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TH1=0XF3;
TL1=0XF3;
ES=1;
EA=1;
TR1=1;
}
void main()
{
initSer();
while(1)
{
while(receFlag)
{
sendAll(SHUOMING0);
sendAll(SHUOMING1);
sendAll(SHUOMING2);
sendAll(SHUOMING3);
receFlag=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
波特率都尝试过了,向PC发送任何字符都不行,都会乱码或者无显示。现在是可以PC向单片机虚拟终端发数据,但单片机向PC串口调试助手发就会乱码。
对,仿真。电路应该没问题,不加max232用官网的示例程序可以发送。这个程序有问题,想要单片机直接向PC发送数据不能实现,一定要PC发个字符才能开始传输,而且传输到串口助手显示乱码。。。
一周热门 更多>