单片机串口调试问题
#include<reg52.h>#defineucharunsignedchar//#defineuintunsignedintunsignedcharflag,a,i...
#include<reg52.h>
#define uchar unsigned char
//#define uint unsigned int
unsigned char flag,a,i;
uchar code table[]="i get";
void init()
{
{
TMOD = 0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
}
void main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!TI);
TI=0;
}
SBUF=a;
while(!TI);
TI=0;
ES=1;
P2=0x11;
flag=0;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
程序如上,stc89c52,晶振12m,isp版本v6.77,原本希望发出x,得到i get x,结果
返回的是A9 BA D5 D4 8A;菜鸟请教问题出在哪儿?如何改正 展开
#define uchar unsigned char
//#define uint unsigned int
unsigned char flag,a,i;
uchar code table[]="i get";
void init()
{
{
TMOD = 0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
}
}
void main()
{
init();
while(1)
{
if(flag==1)
{
ES=0;
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!TI);
TI=0;
}
SBUF=a;
while(!TI);
TI=0;
ES=1;
P2=0x11;
flag=0;
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
程序如上,stc89c52,晶振12m,isp版本v6.77,原本希望发出x,得到i get x,结果
返回的是A9 BA D5 D4 8A;菜鸟请教问题出在哪儿?如何改正 展开
3个回答
迪凯特科技(北京)有限公司
2023-07-28
展开全部
首先,文本模式发送就应该文本模式接收。16进制模式发送,就应该16进制模式接收。这样发送什么显示什么。
再者,12M晶振,串口调试不合适,但是你要像上面一样试试,还是可以的。
再者,12M晶振,串口调试不合适,但是你要像上面一样试试,还是可以的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信数据丢失的原因可能如下:1. 按键通过串口发送对应命令,第一次按按键串口发送的指令正确且能把数据正确的显示出来,在第二次按按键串口发送的指令出现丢失的状况,可能是因为串口通信的波特率设置不正确。2. 如果单片机和外部设备的波特...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询