找回密码
 立即注册
查看: 1193|回复: 13

多串口通信导致单片机死机或跑飞需要加看门狗复位吗

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-8 12:01:55 | 显示全部楼层 |阅读模式
我做的modbus通信从站无看门狗设置。用别一片做主站和这个从站通信没有问题,又加了一个主站。用的是有人的154,结果这个从站就死机了(无反应)。请教是什么原因?

之前用过别人人从站,用的电脑和无线LORA通信结果从站跑飞了(乱发数据)。原因也不知道。   
请教这种情况发生的原因。解决方法是什么。
用的一样的从站采信4-20MA AIAO都不死机。就是这个 DIDO的功能死机。有点不解。
能想到的解决方法就是加看门狗。不过不希望复位。采集还好说。DO AO都不应该复位。 不太好。
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-8 14:16:33 | 显示全部楼层
描述的信息太少,,原理图 工程代码(简化一下,能编译通过且能复现问题的代码),,有这些东西才好看你问题,,,

从你的描述上 时多主一从?
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-8 17:22:03 来自手机 | 显示全部楼层
_奶咖君_ 发表于 2024-7-8 14:16
描述的信息太少,,原理图 工程代码(简化一下,能编译通过且能复现问题的代码),,有这些东西才好看你问 ...

如果是查看代码的话,那太麻烦了。
基本上都是差不多的代码都没加看门狗。
不同的地方就是。Aiao这两个正常的模块用了5伏转3.3的asm1117因为工作需要。所以这个单片机是三者三伏供电的。
因为没有需要。所以。dido这个模块用的直接是5伏多一点供电。大约5.25伏。代码方面可以理解为都是几乎相同的。因为都是我自己写的。
所以我现在怀疑有可能单片机如果长期五伏多供电的话。可能会有问题。用3.3伏供电就很好,没事。
单片机死机的表现就是。和他通讯再也没有信息回复了。这种情况发生在另一个同样的单片机。也是五伏供电。去和串口设备dr154一起访问这个从机的时候。
如果只是一个另一个stc芯片作为主机去访问这个从站的话。是没有问题的。
他们之间的访问都是用的串口通讯。
所以最终想知道的就是。什么样的通讯会导致单片机死机?
为了单片机更加的稳定。我把相关的存储功能都没有使用。比如从站的地址。都是在里面写死的,没有改变。就是防止地址复位连接不上。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-7-8 17:57:01 | 显示全部楼层
没代码 原理图 只能猜  看看有没有大佬愿意猜一猜把
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-18 23:10:55 来自手机 | 显示全部楼层
本帖最后由 qepuemc 于 2024-7-19 23:40 编辑

为了防止多主机同时通讯会造成干扰和通讯资源的浪费。影响网络正常运行。我做了这个可以进行简单滤波的东西。用的是32引角的stC32。本身对串口的理解可能还不够吧。用了串口二的。1.6 1.7 3.0 3.1     3.63.7   调试好了,用其中两个就够用了。一开始想的比较多,后来想了一下,只要用它控制收一条发一条就不错。也就是说主站请求过来了,然后就去从站请求从站发了之后就去主站等待请求。现在已经实现了。用TT l3.0 3.1。和485通讯可以正常。1.6 1.7。可是我要把3.03.1换成3.63.7。本来是一件很简单的事情了。可是头疼了好几个小时也换不了。于是把备用的3.03.1。上面的通讯备用的485也给接上了。结果还是通讯不了。之前咨询过实际只有一路串口。只能通过切换引脚进行操作。可是看到64脚串口三与串口四的通讯好像又不是这样的。
路过大神给个思路呗。

经过问技术已经解决。现在已经实现串口切换,检测上传口数据转发到485网络。然后得到数据后继续检测。如果得不到数据等80MS后也继续检测上传的485口。目的基本实现了。解决了本地485网络数据传到网络上去浪费流量。
按个这个思想加其它的485网络上传设备就都可以这么操作了。可以实现多去共同接入。
需要原代码或PCB可以留言。有需要的人我就发出来。没有就不发了。
IMG_20240718_230350.jpg

2串口过滤改好串口数据不对.rar

71.38 KB, 下载次数: 56

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-30 06:49:02 | 显示全部楼层
程序总是死机的原因找到了。在定义串口数据长度的时候,我设置的速度太短了。设置为10。实际上其他的程序会给到更长的长度,就莫名其妙的死机了。死机的时间大约是一秒到几千秒都有可能。做了一下改动之后就没事儿了。把定义的速度加长了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:425
  • 最近打卡:2025-05-04 00:16:27
已绑定手机

19

主题

3191

回帖

4930

积分

论坛元老

积分
4930
发表于 2024-7-30 20:41:20 来自手机 | 显示全部楼层
数据太长产生溢出了?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:379
  • 最近打卡:2025-05-02 11:40:42

43

主题

336

回帖

595

积分

高级会员

积分
595
发表于 2024-7-31 07:53:36 | 显示全部楼层
应该是的。现在运行两天了很好。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:469
  • 最近打卡:2025-05-03 11:38:32
已绑定手机

20

主题

106

回帖

679

积分

高级会员

积分
679
发表于 2024-7-31 22:02:32 | 显示全部楼层
堆栈溢出、寄存器中断紊乱等原因造成的死机看门狗才起作用,晶振问题的死机没用。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:215
  • 最近打卡:2025-05-03 00:37:12
已绑定手机

36

主题

561

回帖

1942

积分

荣誉版主

积分
1942
发表于 2024-8-1 00:05:23 | 显示全部楼层
共地、干扰、看门狗、堆栈、中断异常,都有可能导致死机或程序跑飞,
遇到过共地、干扰、看门狗导致的问题。
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-4 07:45 , Processed in 0.608114 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表