单片机串口通信过程中电脑死机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机串口通信过程中电脑死机相关的知识,希望对你有一定的参考价值。
我用面包板搭建的单片机,按照杜洋单片机视频教学一样的啊。可是每次在自动发送时电脑会死机黑屏重启。还有时候下载程序的过程中电脑自动重启。 我觉得电路,程序没有问题啊,很简单的程序和电路。COM口,连线都OK 其他实验都正常,就是串口不好 不知道这个和系统有没有关系win764位的 或者是其他什么原因???
可能的原因:1.你的USB转串口线质量不好,或是驱动不良,或是此设备在win7 64位机上工作不正常。
2.如果你使用的是PL-2303HX系列的USB转串口线,那么在电脑打开串口后,拔掉USB线,一定会死机,再插上USB线也无济于事。只能关机重启。正确的做法是只能关闭串口后,在拔出USB线
3.如果你的面包板从USB取电的话,建议不要超过450mA电流,否则会引起电脑死机重启
如果你是STC系列的单片机,推荐使用FT232,CH340系列的USB转串口线会稳定很多。其他芯片的USB转串口线用在STC单片机上,毛病多多 参考技术A 可能的原因:
1.USB转串口线质量不好,或是驱动不良,或是此设备在win7 64位机上工作不正常。
2.如果使用的是PL-2303HX系列的USB转串口线,那么在电脑打开串口后,拔掉USB线,一定会死机,再插上USB线也无济于事。只能关机重启。正确的做法是只能关闭串口后,在拔出USB线。
3.如果面包板从USB取电的话,建议不要超过450mA电流,否则会引起电脑死机重启
4.如果是STC系列的单片机,推荐使用FT232,CH340系列的USB转串口线会稳定很多。其他芯片的USB转串口线用在STC单片机上。 参考技术B
看看设备耗不耗电,用360重装系统试试,线是否有问题,驱动否有问题
来自:求助得到的回答 参考技术B 1.你的USB转串口线质量不好,或是驱动不良,或是此设备在win7 64位机上工作不正常。2.如果你使用的是PL-2303HX系列的USB转串口线,那么在电脑打开串口后,拔掉USB线,一定会死机,再插上USB线也无济于事。只能关机重启。正确的做法是只能关闭串口后,在拔出USB线
3.如果你的面包板从USB取电的话,建议不要超过450mA电流,否则会引起电脑死机重启 参考技术C 计算机这边用的什么软件接收串口数据?有些系统或软件会把串口数据当成键盘或鼠标数据。
另找一台电脑试试,这种情况一般是电脑这边的原因。追问
由于单片机不是51而是STC12C32S2。这个单片机下载不是很稳定,总是失败,下到最后一点时就卡主,然后电脑黑屏死机,后来我百度到把最高和最低波特率都调到一样的而且用2400时可以下载成功了,可是下载是成功了后STC_ISP就卡住了好的时候就自动退出程序不好的时候就直接电脑重启。
追答有没有另找一台电脑试试?或者换一个ISP及开发板试试。
单片机实验串口通信实验
实验三:串口通信实验
内容:
(1)利用电脑串口与实验台串口进行连接;
(2)根据帧格式定义、波特率定义,编程配置串口,并编写控制程序;
(3)实现从电脑上输入控制字符,由单片机通过串口接收,并控制LED显示的功能;
(4)对所编程序进行调试及验证。
要求:
(1)掌握波特率的概念、学会编程设置波特率和工作方式;
(2)掌握串口通信的编程控制方法;
(3)理解解MAX232串口通信的硬件电路结构。 注意实验三,需要同学们自己编写程序,实现从电脑串口助手(利用单片机下载软件提供的串口调试助手),发送一个字符给单片机,单片机通过中断方式接收,或通过查询方式接收后,把该字符的值送到8个LED显示 你的任务:编写主程序,串口初始化(要启动定时器),编写中断接收程序,和查询接收程序,接收到数据后,还要回送电脑显示,并驱动LED,当接收到的数据是88H时,驱动一个8个LED轮流点亮,当接收到的数据是99H时,停止8LED流水亮。当接收到的数据是11H时,LED全亮。当介绍到的数据是FFH时,全灭。 编程实现,明天实验课直接去调试。一定要提前编写程序,实验课只是去验证你的程序是否正确。
1 #include <reg51.h> 2 #include <intrins.h> 3 unsigned char NewData,led,Count; 4 bit NewFlag ; 5 void main( void ) 6 TMOD = 0x21 ; 7 TH0 = ( 65536 - 10000 ) / 256 ; 8 TL0 = ( 65536 - 10000 ) % 256 ; 9 Count = 0 ; 10 led = 0xFE ; 11 TH1 = 0xFD ; 12 TL1 = 0xFD ; 13 TR1 = TR0 = 1 ; 14 SCON = 0x50 ; 15 ES = EA = ET0 = 1 ; 16 NewFlag = 0 ; 17 while ( 1 ) 18 if( NewFlag ) 19 if( NewData == 0x88 ) 20 ET0 = 1 ; 21 22 if( NewData == 0x99 ) 23 ET0 = 0; 24 25 TI = 0 ; 26 SBUF = NewData ; 27 while ( TI == 0 ); 28 NewFlag = 0 ; 29 30 31 32 void set0 ( void ) interrupt 4 33 if( TI ) TI = 0 ; 34 if( RI ) 35 RI = 0 ; 36 NewData = SBUF ; 37 NewFlag = 1 ; 38 39 40 void T0_INT () interrupt 1 41 TH0 = ( 65536 - 10000 ) / 256 ; 42 TL0 = ( 65536 - 10000 ) % 256 ; 43 Count ++ ; 44 if( Count >= 50 ) 45 Count = 0 ; 46 led = _crol_(led , 1 ); 47 P1 = led ; 48 if( NewData == 0x11 ) P1 = 0 ; 49 if( NewData == 0xFF ) P1 = 0xFF ; 50 51
以上是关于单片机串口通信过程中电脑死机的主要内容,如果未能解决你的问题,请参考以下文章
借助虚拟串口驱动软件模拟Proteus中51单片机与PC端串口调试助手软件相互通信