你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
feixiang20 发表于 2018-4-11 03:07 既然重启可行,那就检查硬件发热元件以及初始化代码,查看芯片硬件复位
不吃肉的羊 发表于 2018-4-11 10:26 这种偶然性的死机很麻烦,我也遇到过蛮多次 1.硬件问题 被静电打死的情况比较多,你试试花两块钱买个打火机 ...
任风吹吹 发表于 2018-4-10 16:58 这种问题一般是只能你自己解决,想要知道原因并彻底解决问题,建议将打印信息输出来,监控程序运行流程,关 ...
查看全部评分
pentral0311 发表于 2018-4-19 10:58 小弟浅见,觉得问题偏向软件部分, 1.可能堆栈异常,例如某个子程序,开的一个变量缓冲不够,一开始也没问 ...
叔森 发表于 2018-4-21 16:35 我之前遇到过类似问题,后来发现是STM32 CAN通信有个错误计数保护机制,当发现CAN总线错误帧超过128时自动 ...
STM32隐藏
5.18活动板子会不会是STM32L4呢
STM32 CUBE软件中找不到STM32L4系列单片机
Your UAT Feedback is needed within today.
应用
AAA
tiwen
BBBB
aaa
2222
程序运行后开始工作就没有初始化代码了,也无硬件发热情况,而且从机是一样的装置,并没有出现死机现象。单机也不出现死机
硬件经过静电测试的,也通过EMC测试,没有问题;
软件出问题至少都是工作半个月,仿真器仿真不到这么久,而且一死机连modbusTCP都停止工作了,显示系统状态的指示灯也不闪烁了,但是晶振肯定是有波形的,示波器测试得到。
我把通讯的相关参数全部通过modbusTCP送到上位机了,出现问题后modbusTCP停止,停止前的参数都是正常的,通过仿真器,一般仿真器连续仿真几天就不错了,但是我们设备一般出问题至少都超过半个月,也没办法仿真,现在我只能扩大堆栈空间,已经开始做老化测试了,希望有用吧
是不是某个变量溢出了判断失败,比如一个毫秒计数器a,然后判断条件if((a>(b+500))b=a,dosomething;如果a计数到最大后再计数就变成0,然后判断一直就不成立了
评分
查看全部评分
评分
查看全部评分
1.可能堆栈异常,例如某个子程序,开的一个变量缓冲不够,一开始也没问题,等频繁调用时,慢慢造成你的PC指针或者溢出。
2. 还有一种就是can使用中断方式,是否使用了过多的操作,因为断开没问题,只有联网通讯才出现。
3.可以只保留CAN通讯功能,把其应用的先删除,再试试,会不会出现,这个可以区分是底层的硬件方面的,还是应用层出的问题,缩小范围吧。 建议多搭几套测试环境,看看是那种环境出来的
以上仅供lz参考, 开发最大的工作就是找思路的DEBUG
评分
查看全部评分
这个别的没事个别板有问题 原因还是你那CAN总线布线在运行中受干扰问题。最好顺带优化下那CAN线,双绞线首末两端加120欧电阻
评分
查看全部评分
那也有2种情况:1、硬件问题。芯片有问题,看看硬件设计和选型上是否有不合理的地方。
2、软件问题,但软件问题可以看产品,如果所有产品都是如此,那就是软件问题,如果有一部分没事,那和软件就没关系了。如果是软件问题,建议加打印输出,然后一直运行,当停止运行时,将当时状态输出查看。
评分
查看全部评分
恩,现在能排除堆栈异常了,只能继续找问题,开发产品容易,找BUG太困难了。谢谢了
你好,请问CAN离线能引起整个系统死机?