为什么一打开串口调试助手,单片机的程序就停了?

/*
时钟频率11.914402mhz,波特率选择2400,TH1=243.
本来想是未输入时,亮led2,输入后,亮led1,输出后除了led1其他全部亮的。
可是程序下载到板子里后,未输入时,亮led2没错,但是一打开串口调试助手后,所有灯都熄灭,为什么?错在哪里?请指点。
*/
#include<reg52.h>
void main()
{
void init_setTimmer();
void init_setSerialPort();
int get_int();
void send_int(int);

int number=0; int i=0;
init_setTimmer();
init_setSerialPort();

while(1)
{
if(RI==1) break;
number=get_int();
P0=0xfd;
}
RI=0;//clear RI.
P0=0xfe; //if cpu get the number,then light up D1.
for(i=0;i<8;i++)
{
send_int(number+i);
}
P0=0x1;//when cpu send out the number,light up all the LED except D1.
}

void init_setTimmer()
{
TMOD=0x20;
TR1=1;
TH1=0xf3;
TL1=0xf3;
}

void init_setSerialPort()
{
SM0=0;
SM1=1;
REN=1;
RI=0;
}

int get_int()
{
return (int)SBUF;
}

void send_int(int num)
{
SBUF=num;
}

第1个回答  2012-12-14
线接错了,接收、发送和地线三根线有两根错了。
也可能是你直接把单片机的TTL电平USRAT口直接与PC的RS232直接连接了,没有使用232芯片。追问

是不是需要短接什么?

摸索着似乎成功了。下载程序的时候,我短接了J0(左上角) 的12,传输数据的时候,我短接了J0的23,好像就有用了!但是为什么呢。

本回答被提问者采纳
第2个回答  2012-12-14
很可能是程序串口配置不正确,
再检测下你的其他单片机外围设备是否与串口配置相互冲突
一般冲突的话还可能导致电脑蓝屏追问

一点击“打开串口”,程序就停了(原来会亮灯的),还有吧嗒的一声,什么意思?关闭串口以后,程序继续运行。

追答

冲突

追问

什么冲突?是因为波特率设置错误吗?

追答

你不上程序 谁知道什么冲突呢

追问

程序如上。。请指点。

追答

你确定代码没问题吗,抱歉c51的程序比较生疏了,但是貌似你没开串口中断?

本回答被网友采纳
第3个回答  2012-12-14
换个 串口调试助手 软件试试追问

还是没用啊!一点打开串口,程序就停了,还会听到吧嗒一声,关掉串口,也是吧嗒一声,程序继续运行。什么情况啊!

追答

不明白!

追问

谢谢。

第4个回答  2018-08-01
不知道楼主解决了没有啊,我也出现了这种情况,打开串口,程序就停了
第5个回答  2012-12-14
说的不详细,程序是你自己写的吗?单片机和串口是通过什么芯片连接的?追问

按照郭天祥的视屏教程写的。我对硬件不是很熟悉。。。。

追答

硬件电路先搞清楚啊,打开串口助手后你看下你板子上工作电压对不对?

追问

摸索着似乎成功了。下载程序的时候,我短接了J0(左上角) 的12,传输数据的时候,我短接了J0的23,好像就有用了!但是为什么呢?

为什么一打开串口调试助手,单片机的程序就停了?
线接错了,接收、发送和地线三根线有两根错了。也可能是你直接把单片机的TTL电平USRAT口直接与PC的RS232直接连接了,没有使用232芯片。

请问为什么打开串口助手,然后选好端口号后,助手软件就没有响应了。程 ...
1、PC上只有一个串口,其标号是“COM1”2、当使用“串口调试助手”,选择“COM2”时,由于没有该串口(或者该串口损坏),程序就会停滞一段时间,然后报错。3、有的电脑主机,Windows访问不存在的硬件时,兼容性不好的,就容易使得“串口调试助手”这样的软件死掉。4、如果不是以上的情况,建议打开“...

串口调试助手发数据单片机接收不对
串口中断函数中应避免有使用串口发送的语句SBUF=xx,这样容易产生嵌套中断,或者使程序发生错误,我想可能是中断函数的问题导致你接收错误

串口调试助手控制esp8266串口中断问题?
1在串口初始化函数中,TMOD被设置为0x20,这意味着定时器1是8位自动重载模式,但您的注释说它是用于产生波特率。这可能是一个错误,应该将TMOD设置为0x21,以使用定时器1作为16位自动重载模式,并用于产生波特率。2在串口接收函数中,多个if语句用于检查接收到的数据。但是,这些if语句都只检查了第二个...

在用串口调试助手时为什么不能接收数据?
1、可能是串口调试助手的各个选项以及通信协议(波特率等)设置不合适,需要重新更改,以确保PC机可以正确采样。2、可能是输入波形不正确 3、可能物理连接不正确;4、单片机不能正常工作;5、可能是通信参数不正确;6、单片机的BAUD因子没有调整好,因为PC的BAUD比较准,单片机不太准,容易误码。

串口调试助手和单片机通讯,为什么有的可以有的不可以
这个因素还是较多的:1、看硬件上是否有问题。2、看单片机是否有毛病。3、看串口线是否有问题。4、看串口是否正常。

我将串口调试助手打开(设置都是正确的),显示接受数据正确,然后关闭再打 ...
应该都没有问题!可能是你在打开串口调试助手时!单片机在向电脑发送数据!如果你在打开串口调试之前把单片机电源关闭也许不会出现那样的情况!

做单片机仿真时,为什么串口调试助手接收区收不到数据?
这个问题很明显,你需要下载一个虚拟串口软件 ,在软件里把“仿真软件里的COM3”和你串口调试助手的COM4连接起来!类似实际2台计算机通信用物理串口线连接一个道理!

串口调试助手没发数据51单片机为什么能接收到数据
串口收发用的是8n1的232协议,他有ring模式和简单模式,简单模式不需要经过应答信号,所以你的单片机程序里面肯定有通过简单模式发送数据的指令,仔细查查,应该能查出来,因为像你这种情况是硬件导致故障的概率几乎为0

串口调试助手接收数据的条件有哪些?
1、单片机里面要有程序。2、电脑串口的参数要与单片机一致。3、点击:“打开串口”,当单片机有数据发送时,PC电脑就能显示数据。最后,注意显示格式:如果单片机是按16进制发送,则PC也要设为16进制显示。

相似回答