单片机串口死机,发送一个命令进去执行一次就没反应了,必须重启单片机,这是怎么回事?

单片机串口死机,发送一个命令进去执行一次就没反应了,必须重启单片机,这是怎么回事?,第1张

1、你滴,是神马单片机?这么牛,能直接发送汉字?还能只要一个地址传递就能将英汉混合字符串分存成单字节Byte(s[i])数组? 如果单片机不能,那么是你滴编译系统能?

2、你滴单片机串口收/发中断是能分开设置是否中断滴么?看你程序收用中断发用查询,51不能分设吧?

3、在没有FIFO的单片机里,一般串口收/发完成1个字节会中断一次,看你程序貌似是发完一串字符才置位TI,这样用当然是不对滴。正确的方法是发完一个字漏缓弊侍节中断后再发下一个字节(有点烦是吧^_^)试试下面的方式调返卜模试:

unsigned char s[]={0,1,2,3,4,5,6,7,8,9}

unsigned char len = 10

void sio_int() interrupt 4//串口中断函数

{

if (RI )

{

RI = 0

……

}

if(TI)

{

TI = 0

if(len)

{

SBUF = s[10 - len ]

len--

}

}

}

出现这种情况,原因比较多,可以尝试以下方法解决:

1、进入BIOS,在电源管理菜单中,看看“RME EventWake up”(PME事件唤醒早郑数),一项是否是“Enable”(默认值),如是,将它改为“Disable”。

2、右击我的电脑选“属性——高级——启动和故障恢复——设置”,在打开的对话框中去掉“系统失败”中的“自动重新启动”前的“√”去掉,按“确定”。

3、 打开控制面板——性能和维护——电源选项——高级电源管理——勾选“启用高陆首级电源管理支持”,按“确定”。

4、有时关机时先拔掉网线故障排除,这可能是网线质量或接口故丛销障引起的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12410051.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存