久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4535|回復: 3
打印 上一主題 下一主題
收起左側

STM32程序運行運行著就卡死了

[復制鏈接]
跳轉到指定樓層
樓主
ID:79697 發表于 2018-12-28 17:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
哪位大神幫忙看一下程序運行一段時間,就跑死了,非常感謝!
#include "sys.h"
#include "led.h"
#include "delay.h"
#include "iwdg.h"
#include "wwdg.h"
#include "usart.h"
#include "myfun.h"
#include "timer.h"
#include "weizhi.h"

#include "adc.h"
#include "key.h"


extern int h1,h2,h3,h4;
extern float kp1,kp2,kp3,kp4;
extern int arr[6];
int biaozhi_hansheng=0;
int reset=0;
int d1=0,d2=0,d3=0,d4=0;


int main(void)
{
        int biaozhi_hansheng=0;
        int key=0;
        
/*************鼾聲變量******************/
        int snore_tine=0,snore_tine_max=0;
        int snore_interval=0,snore_interval_max=0;
  int x=0,y=0;
        int m, n;
        unsigned char snore_s4=0;
        unsigned char snore_s5=0;    //判斷 第五步是否符合條件,如果符合則置一
/*************鼾聲變量******************/
        delay_init();
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart2_init(115200);
        uart_init(115200);
        LED_Init();
        TIM3_Int_Init(999,7199);
        ADCx_Init();
        KEY_Init();
        

        while(1)
        {
                 key=KEY_Scan(1);
                 if(reset==0)
                 {
                    weizhi();
                          reset=1;
                          kp1=kp2=kp3=kp4=0;
                    GPIO_Write(GPIOC,0x0000);
                 }                        
               
                if(biaozhi_hansheng==0)
                {
/**********************************鼾聲檢測**********************************/

                if (snoue_count==1)
                {
        /******  s4   判斷   ************************/                        
                        for(x=1;x<SNOUE_MAX; x++)
                        {
                                snore_tine = A[x]-A[x-1];
                                
                                if ( snore_tine < 0)      //如果這個值是負的, 那模就把他變為正值
                                {
                                    snore_tine = -snore_tine;                                
                                }
                                else
                                {
                                    snore_tine = snore_tine;                                       
                                }
                                
                                if (snore_tine_max >=snore_tine)
                                {
                                        snore_tine_max=snore_tine_max;
                                }
                                else
                                {
                                        snore_tine_max=snore_tine;
                                }
                        }
                        printf("鼾聲長度最大為=%d\r\n",snore_tine_max);
                        
        /******  s4       ************************/
                        if (snore_tine_max <= (1.5 * A[0]))
                        {
                                printf("鼾聲長度符合條件\r\n");
                                snore_s4=1;                        
                        }
                        else
            {
                                snore_s4=0;
                                snoue_count=0;        
                                printf("鼾聲長度不符合條件!!!!\r\n");
                                       
                        }

                        
                        
                        

            /******  s5       ************************/                        
                        
                        
                        if ( snore_s4 == 1 )   //如果S4符合條件
                        {
                                for ( y=1; y< ( SNOUE_MAX - 1 ); y++)
                                {
                                        snore_interval = B[y] - B[y-1];
                                        if ( snore_interval < 0)      //如果這個值是負的, 那模就把他變為正值
                                        {
                                                snore_interval = -snore_interval;                                
                                        }  
                                        else
                                        {
                                                snore_interval = snore_interval;                                       
                                        }                                
                                       
                                        if ( snore_interval_max >= snore_interval )                                       
                                                snore_interval_max = snore_interval_max;
                                        else
                                                snore_interval_max = snore_interval;        
                                }
                                
                                        printf("鼾聲間隔時間最大為:=%d\r\n",snore_interval_max);

                                if (snore_interval_max <= (1.5 * B[0]))
                                {
                                        printf("鼾聲  間隔長度符合條件\r\n");
                                        snore_s5=1;                        
                                }
                                else
                                {
                                        snore_s5=0;
                                        snoue_count=0;        
                                        printf("鼾聲   間隔 長度不符合條件!!!!\r\n");
                    snoue_count=0;                                                
                                }
                        
                   }  //對用著判斷(S4 ==1)

           }
                                if ( snore_s5 == 1)
                                {
                                  printf("鼾聲 檢測符合,需要調整相應的位置\r\n");
                                  biaozhi_hansheng=1;                               //打鼾聲了
                                        for (m=0; m<=SNOUE_MAX; m++)
                                        A[m]=0;
                                        for (n=0; n<=SNOUE_MAX; n++)
                                        B[n]=0;                                       
                                        snore_s5 =0;                                       
          snoue_count=0;                                                
                                }
/*************************************鼾聲監測*****************************/        
                        }
     if(key==KEY_UP||biaozhi_hansheng==1)        
                 {
                     weizhi();
                 }
     if(kp1>=1.7||kp2>=1.8||kp3>=1.8||kp4>=1.9)
                {
                                                 if(kp1>=kp2&&kp1>=kp3&&kp1>=kp4)
                                                 {
                                                         d1=1;biaozhi_hansheng=0;
                                                 }
                                                 if(kp2>=kp1&&kp2>=kp3&&kp2>=kp4)
                                                 {
                                                         d2=1;biaozhi_hansheng=0;
                                                 }
                                                 if(kp3>=kp1&&kp3>=kp2&&kp3>=kp4)
                                                 {
                                                         d3=1;biaozhi_hansheng=0;
                                                 }
                                                 if(kp4>=kp1&&kp4>=kp2&&kp4>=kp3)
                                                 {
                                                         d4=1;biaozhi_hansheng=0;
                                                 }
                                                
                }
              if(h1==1)
                                        {
                                                GPIO_Write(GPIOC,0x0002);
                                        }
                                        if(h2==1)
                                        {
            GPIO_Write(GPIOC,0x0004);
                                        }
                                        if(h3==1)
                                        {
                                                GPIO_Write(GPIOC,0x0008);
                                        }
                                        if(h4==1)
                                        {
                                                GPIO_Write(GPIOC,0x0010);
                                        }               
        }

        
        
}



枕頭 2018.10.26 14:32.7z

195.12 KB, 下載次數: 10

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:911452 發表于 2021-4-24 17:08 | 只看該作者
請問你解決了嗎?遇到了同樣的問題
回復

使用道具 舉報

板凳
ID:911452 發表于 2021-4-24 17:08 | 只看該作者
靜等大佬回復
回復

使用道具 舉報

地板
ID:913577 發表于 2021-4-28 15:46 | 只看該作者
首先要定位跑飛的原因:
1、是debug時就跑飛嗎?
2、在認為可能跑飛的地方打上輸出log
3、利用示波器檢查每個函數的運行時長是否正常;

當然你也先可以試一下以下操作是否可行
1、非全局變量前面加static固定類型;
2、把定時器用起來,不要用什么delay_ms(1000);
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 奇米av | 青青草原综合久久大伊人精品 | 色免费在线视频 | 一起操网站 | 伊大人久久| 97在线超碰 | 一区日韩 | 中文字幕国产在线 | 国产精品黄色 | 伊人性伊人情综合网 | 国产在线区 | 九九热在线观看 | 久久99精品视频 | 国产精品久久久久久久久动漫 | 亚洲成人av在线播放 | 人人人人人爽 | 亚洲一区二区三区 | 91精品国产综合久久香蕉922 | 新超碰97 | 欧美精品一区二区三区四区五区 | 99re视频在线观看 | 午夜三级网站 | 久久aⅴ乱码一区二区三区 91综合网 | 久久久国产一区 | 欧美一区二区三区在线观看视频 | 五月激情婷婷在线 | 一级a性色生活片久久毛片 一级特黄a大片 | 欧美理论在线观看 | 一区二区三区精品视频 | 天天久久| 国产激情视频 | 精品伊人久久 | 久久久久国产一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 亚洲第一色站 | 精品国产乱码久久久久久蜜柚 | 免费同性女女aaa免费网站 | 日韩精品一区二区三区中文字幕 | 一级片aaa | 欧美日韩国产三级 | 国产一区二区在线免费 |