提问+STC的51单片机到底稳定不稳定
2个回答
展开全部
总体来说还行,做一般的产品可以。但我认为是不够稳定的,我做过一个产品,用STC15F2K08S2。是从上位机接收串口命令然后执行相关动作,并把设备一些状态通过串口发给上位机。因为我比较注重效率,所以串口的发送和接收都采用中断方式进行,这样有串口命令时才去处理,没有时单片机做其它任务或休眠。但客户反映了不稳定的情况,有时从上位机发命令会导致外设死机。我当时花了很长时间找不到问题,因为我在烧录是就已启动了看门狗,如果死机应该会导致单片机复位才对。但没有,设备只是静悄悄的什么反应也没有,既不发数据也不接收命令。而且这种状况是随机的,很难重现,有时好几天都不出现一次,很难通过重现现象来查找问题。我怀疑是程序的BUG,但反复查找推理都没有找到哪有错。
我一直是相信硬件的,因为我之前无数次在程序调不通时怀疑硬件,但后来都证明是自己的程序错了。但这次实在找不到自己的问题,终于又怀疑是单片机的问题来。但怀疑就得有根据,于是我另外写了一个测试程序。在串口助手不停向单片机发数据,并让单片机不停地进串口中断重发接收到的数据,通过串口助手观察。终于串口死掉了,不接受数据也不发送数据。而程序还在控制着几个灯在反复循环,并没有死掉。
我后来改由程序来接收和发送数据,不进串口中断。没有发现任何问题,哪怕接收及发送速率都很高,程序最多循环的灯变慢或闪烁。
通过实验我知道,STC15F2K这系列的单片机中断系统硬件是有缺陷的。我后来修改了产品的程序,客户没有再反馈有什么”死机“的问题。
我一直是相信硬件的,因为我之前无数次在程序调不通时怀疑硬件,但后来都证明是自己的程序错了。但这次实在找不到自己的问题,终于又怀疑是单片机的问题来。但怀疑就得有根据,于是我另外写了一个测试程序。在串口助手不停向单片机发数据,并让单片机不停地进串口中断重发接收到的数据,通过串口助手观察。终于串口死掉了,不接受数据也不发送数据。而程序还在控制着几个灯在反复循环,并没有死掉。
我后来改由程序来接收和发送数据,不进串口中断。没有发现任何问题,哪怕接收及发送速率都很高,程序最多循环的灯变慢或闪烁。
通过实验我知道,STC15F2K这系列的单片机中断系统硬件是有缺陷的。我后来修改了产品的程序,客户没有再反馈有什么”死机“的问题。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询