微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 51单片机调试程序,老实重启。快要验收了,忘大家指点。

51单片机调试程序,老实重启。快要验收了,忘大家指点。

时间:10-02 整理:3721RD 点击:
51单片机调试程序,老实重启。快要验收了,忘大家指点。
              我最近做了一个小项目,遇到些问题,想请大家指点指点。
         问题是单片机重启,当我从电脑的串口调试软件发一些数据向单片机上时,单片机有时会重启。
    我当时把程序写完后调试的前几次串口接受数据都是成功的,但是后面再进行测试就一直重启,这个问题已经
困扰我好久了,求大家帮我解脱啊。

如果有必要我可以贴上我的程序,希望大家能够帮我一起找找问题。
这个帖子我会一直关注着,直到解决问题为止,暂时没多少金币,只能先赏金50个了。

1.在这个小项目里面要向单片机发送两段数据,当发送第一段数据时,没有问题,但是当发送第二段数据时就会重启。
2.我把两段数据整合这一起往单片机发送,还是会出现重启的问题。

人工置顶啊!

串口接收和处理部分能否看下?

这个问题要具体问题具体分析:
前提条件:
               用的什么单片机CPU? 是否有内置或外置的看门狗电路?复位电路是什么样的?供电电源是什么样的?是否有外部信号或者模拟量的干扰?
分析方法:
             1.先确定是硬件还是软件导致复位?
             2.如果是硬件,是哪里的原因,可否修改电路?
             3.如果是软件,是哪里的原因,可否排除其他,模块,先从最小系统查看,逐步添加功能模块程序看问题在那里;

楼上说的很有道理,先弄清楚问题在哪里才好解决呀

好东西谢谢 lz哈哈哈哈哈哈收藏啦

嗯嗯,我大概自己排查过,
应该不是板子的问题,我现在怀疑是看门狗的问题,51单片机看门狗的默认状态是什么?
我程序中有一个时间比较长的延时函数。

那你得看是什么型号单片机 简单的C8051是不带看门狗的  如果内置有看门狗,而且你又启动了 可能会是这个问题 如果没有看门狗 又不是硬件问题,看看程序是不是有变量或则函数嵌套过多导致出栈了

如果你没有开启看门狗,那么可能是:
1.检查单片机供电是否稳定
2.串口接收程序不严谨,产生数据溢出或内存溢出,导致程序跑飞
3.如果你使用了软件复位,先关闭软件复位相关语句(STC系列单片机)

你是做什么项目,能给说说吗,最好拍个实物照片看看,这样会比较好

你有打开看门狗吗?
估计很有可能是你程序自身的问题,你没发现而已,我以前也是碰到很多奇怪的问题,到后面发现后是自己程序有问题

先写一个最小的串口程序,看是不是串口问题,
排除软件问题,那就是你电路问题,看看复位电路是怎么做的。

小编这问题解决了么,我也出现了和你差不多的问题。

我的是CC2530在跑contiki时,开了sleep timer 中断,程序运行到一半就重启了,重启几次后就死机了

调试仿真就知道了问题出哪里

看门狗的话要及时喂狗啊

第一,关闭看门狗(如果有的话),看看是不是看门狗给你复位的;
第二,截断硬件复位电路,看看是不是它收到干扰导致不断复位;
第三,跟楼上某位说的一样,先写一个简单小程序,看看单片机有没有问题,如果没问题,单独写一个串口程序,看看有没有问题;

都过去几年了,我想知道小编还记得当初是怎么解决的吗?软件还是硬件?

首先从你的描述看可能是因为内存溢出了,导致了某些数据别覆盖,程序因此跑飞了,你可以往这方面查一查

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top