王昱顺 发表于 2025-10-8 17:36:53

l164908060 发表于 2025-10-8 16:59
已经尝试修改100一样会误触发 所以初步是怀疑单片机串口工作不正常

那么有两种解决方向:
硬件方面,为了防止串口的错误干扰,可以将上拉电阻打开,使其在对面不工作的时候也有一个准确的信号。
还有一种误动作的情况是电源质量问题导致单片机重启,可以尝试给单片机电源脚位再加个电容试试。

软件方面,可以打印每一次触发时候的各个变量数值,方便观察是哪里出现了问题。可以将重复判断值调小,看看是否能经常性的稳定触发这个问题,然后再排查
或者,将while(1)开头的10ms延迟继续增大,以增强每次处理间隔时间,看看是否能避开

王昱顺 发表于 2025-10-8 17:38:29

l164908060 发表于 2025-10-8 16:59
已经尝试修改100一样会误触发 所以初步是怀疑单片机串口工作不正常

考虑误触发可能由于非原子操作问题引起,在主循环执行中,使用EA=0保护,执行完后再EA=1放开。
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=11928&highlight=%E5%8E%9F%E5%AD%90%E6%93%8D%E4%BD%9C&page=1&extra=#pid122047

l164908060 发表于 2025-10-8 20:13:07

王昱顺 发表于 2025-10-8 17:38
考虑误触发可能由于非原子操作问题引起,在主循环执行中,使用EA=0保护,执行完后再EA=1放开。
https://w ...

谢谢!
页: 1 [2]
查看完整版本: 求程序大神帮忙看看这个程序bug