打印
[STM32F1]

单片机运行一段时间后死机

[复制链接]
287|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gongche|  楼主 | 2022-10-14 21:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是STM8S103单片机,自己编写的程序在买的最小系统板上能够正常运行,但在自己做的板子上出现问题,问题如下:刚焊接好电路板下载程序完成后单片机正常运行,但是运行经过一段时间后就无法运行了,重新上电也无法运行,甚至重新下载程序到板子上也无法继续运行,使用外部时钟和内部时钟也是一样的情况,只有用风枪吹单片机才能运行(单片机是20脚的封装,焊接应该没问题,不然一开始就无法运行了),请各位大神帮忙看看是什么问题。

使用特权

评论回复
沙发
chenjunt| | 2022-10-14 21:13 | 只看该作者
楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因

使用特权

评论回复
板凳
gongche|  楼主 | 2022-10-14 21:17 | 只看该作者
while (1)
  {
                if (((PC_IDR&0x08)==0x00)&&(flag_stop==0))//stop signal from Hall1
          {
                        flag_stop=1;
                        flag_start=0;
                        TIM2_CR1=0x00;//close TIME2
                        PB_ODR&=0xcf;//turn off LED
                        PD_ODR|=0x0c;//send start signal to master and open the buzzer
                        Delay(50);
                  for (i=0;i<4;i++)//send time to master
            {
                          PD_ODR=0x08&((s/10)<<i);//4bit
                          Delay(50);
                  }
                  for (i=0;i<4;i++)//send time to master
            {
                          PD_ODR=0x08&((s%10)<<i);//4bit
                          Delay(50);
                  }
                  PD_ODR&=0x00;//reset PD
                        Delay(1000);
                        PD_ODR|=0x20;//send control K1 to master
                }
               
                if (((PC_IDR&0x10)==0x00)&&(flag_stop==0))//stop signal from Hall2
          {
                        flag_stop=1;
                        flag_start=0;
                        TIM2_CR1=0x00;//close TIME2
                        PB_ODR&=0xcf;//turn off LED
                        PD_ODR|=0x0c;//send start signal to master and open the buzzern
                        Delay(50);
                  for (i=0;i<4;i++)//send time to master
            {
                          PD_ODR=0x08&((s/10)<<i);//4bit
                          Delay(50);
                  }
                  for (i=0;i<4;i++)//send time to master   
            {
                          PD_ODR=0x08&((s%10)<<i);//4bit
                          Delay(50);
                  }
                  PD_ODR&=0x00;//reset PD
                        Delay(1000);
                        PD_ODR|=0x40;//send control K2 to master
                }
               
                if ((((PC_IDR&0x08)==0x08)||((PC_IDR&0x10)==0x10))&&(flag_start==0))//start signal form Hall1 or Hall2
          {
                        flag_stop=0;   
                        flag_start=1;
                        PD_ODR&=0xf7;//reset PD3
                        s=0;//reset second
                  TIM2_CR1=0x01;//open TIME2
                        /**
                        if (s>=60)
                  {
                                s=0;
                                TIM2_CR1=0x00;//close TIME2
                                PB_ODR|=0x30;//turn on LED
                          PD_ODR|=0x08;//send stop signal to master
                                Delay(450);
                        }
                        **/
                }
        }

使用特权

评论回复
地板
gongche|  楼主 | 2022-10-14 21:19 | 只看该作者
先排除数软件原因  还是硬件原因  软件的话 你这种情况 只能是进入深度低功耗休眠了 没唤醒

使用特权

评论回复
5
zhenykun| | 2022-10-14 21:21 | 只看该作者
硬件无非是电源电压不稳定,晶振和复位电路

使用特权

评论回复
6
stly| | 2022-10-14 21:24 | 只看该作者
可能是电源问题

使用特权

评论回复
7
heweibig| | 2022-10-14 21:27 | 只看该作者
不妨上原理图看看

使用特权

评论回复
8
pengf| | 2022-10-14 21:30 | 只看该作者
芯片的电源和地 最好加个 板子电源 一般是10UF 左右 胆电容或者点解电容

使用特权

评论回复
9
juventus9554| | 2022-10-14 21:34 | 只看该作者
电源芯片用的是XL1509-5,输出端使用一个470UF的点解电容和一个104瓷片电容,我做了两块板子,另一块板子的单片机电源引脚是接到104后面的,没有出现问题,我把出问题的那块板子单片机的电源引脚切了换到104瓷片电容后面还是会出现这个问题

使用特权

评论回复
10
dingy| | 2022-10-14 21:35 | 只看该作者
每次都是这样吗

使用特权

评论回复
11
jiajs| | 2022-10-14 21:37 | 只看该作者
什么途径购买的啊 有没有可能是假的啊

使用特权

评论回复
12
chuxh| | 2022-10-14 21:44 | 只看该作者
你的问题好奇怪啊

使用特权

评论回复
13
dingy| | 2022-10-14 21:46 | 只看该作者
感觉像是芯片个体的问题

使用特权

评论回复
14
zhanghqi| | 2022-10-14 21:48 | 只看该作者
底盘那会不会有短接的部分

使用特权

评论回复
15
pengf| | 2022-10-14 21:53 | 只看该作者
楼主你好,我这边用STM32芯片,现场运行一段时间后也出现了你这种情况,很头大!你单片机跑的主频是多少?

使用特权

评论回复
16
SantaBunny| | 2023-2-22 10:36 | 只看该作者
晶振失效或受干扰 晶振本身失效或者受干扰,一般MCU都会选择外部晶振,相比内部的会更加准确一些。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

768

主题

9410

帖子

2

粉丝