收藏官网首页
查看: 27450|回复: 1

[交流] app上开关不稳定的问题

1

主题

1

帖子

24

积分

新手上路

Rank: 1

积分
24
跳转到指定楼层
楼主
发表于 2018-7-25 20:23:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
APP与esp8266模块连接上以后有一个开关总是自动跳到开的那一端,把它关掉之后,还是会自动跳到开,而其他相似的开关并不会出现类似的情况。请问有没有人有出现过类似的情况啊?是如何解决的?附上部分程序:
  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "usart.h"
  6. #include "timer.h"
  7. #include "usart3.h"
  8. #include "gizwits_product.h"
  9. #include "adc.h"
  10. #include "math.h"
  11. #include "beep.h"
  12. dataPoint_t currentDataPoint;
  13. int maopi;
  14. u8 wifi_sta=0,t=0;
  15. unsigned long*p;


  16. unsigned long Read_HX(void)  //¶ÁHX711оƬÊä³öµÄÊý¾Ý¡£
  17. {
  18. unsigned long val = 0;
  19. unsigned char i = 0;

  20. GPIO_SetBits(GPIOB,GPIO_Pin_13);    //DOUT=1
  21. GPIO_ResetBits(GPIOB,GPIO_Pin_12);    //SCK=0
  22. while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13));   //µÈ´ýDOUT=0  
  23. delay_us(1);
  24. for(i=0;i<24;i++)
  25. {
  26. GPIO_SetBits(GPIOB,GPIO_Pin_12);    //SCK=1
  27. val=val<<1;
  28. delay_us(1);  
  29. GPIO_ResetBits(GPIOB,GPIO_Pin_12);    //SCK=0
  30. if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13))   //DOUT=1
  31. val++;
  32. delay_us(1);
  33. }
  34. GPIO_SetBits(GPIOB,GPIO_Pin_12);
  35. val = val^0x800000;
  36. delay_us(1);
  37. GPIO_ResetBits(GPIOB,GPIO_Pin_12);
  38. delay_us(1);
  39. printf("µçѹ%d",val);
  40. maopi=val;
  41. return val;  

  42. }

  43. unsigned long Read_HX711(void)  //¶ÁHX711оƬÊä³öµÄÊý¾Ý¡£
  44. {
  45. unsigned long val = 0;
  46. unsigned char i = 0;

  47. GPIO_SetBits(GPIOB,GPIO_Pin_13);    //DOUT=1
  48. GPIO_ResetBits(GPIOB,GPIO_Pin_12);    //SCK=0
  49. while(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13));   //µÈ´ýDOUT=0  
  50. delay_us(1);
  51. for(i=0;i<24;i++)
  52. {
  53. GPIO_SetBits(GPIOB,GPIO_Pin_12);    //SCK=1
  54. val=val<<1;
  55. delay_us(1);  
  56. GPIO_ResetBits(GPIOB,GPIO_Pin_12);    //SCK=0
  57. if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13))   //DOUT=1
  58. val++;
  59. delay_us(1);
  60. }
  61. GPIO_SetBits(GPIOB,GPIO_Pin_12);
  62. val = val^0x800000;
  63. delay_us(1);
  64. GPIO_ResetBits(GPIOB,GPIO_Pin_12);
  65. delay_us(1);
  66. val=val-maopi;
  67. val=abs(val);
  68. val=val/400;

  69. p=&val;


  70. return val;  

  71. }

  72. void Gizwits_Init(void)
  73. {
  74.        
  75.         TIM3_Int_Init(9,7199);//1MSϵͳ¶¨Ê±
  76.     usart3_init(9600);//WIFI³õʼ»¯
  77.         memset((uint8_t*)¤tDataPoint, 0, sizeof(dataPoint_t));//É豸״̬½á¹¹Ìå³õʼ»¯
  78.         gizwitsInit();//»º³åÇø³õʼ»¯
  79. }

  80. /*void userHandle(void)
  81. {
  82.       //Åжϵ±Ç°LED1¿ª¹ØÁ¿
  83.            if(LED2==0)
  84.        currentDataPoint. valuekey1 = 1;
  85.        else
  86.             currentDataPoint. valuekey1 = 0;
  87. }
  88. */       
  89. int main(void)
  90. {         int sum;
  91.          int aver;
  92.          int i,c;
  93.          u16 a5;
  94.          int xin;
  95.           u16 a6,a7,a4;       
  96. int key;
  97.         delay_init(168);        //³õʼ»¯ÑÓʱº¯Êý  
  98.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //ÉèÖÃNVICÖжϷÖ×é2:2λÇÀÕ¼ÓÅÏȼ¶£¬2λÏìÓ¦ÓÅÏȼ¶
  99.         uart_init(115200);         //´®¿Ú³õʼ»¯Îª115200
  100.         LED_Init();                             //LED¶Ë¿Ú³õʼ»¯
  101.          KEY_Init();
  102.         TIM3_Int_Init(4999,7199);//10KhzµÄ¼ÆÊýƵÂÊ£¬¼ÆÊýµ½5000Ϊ500ms  
  103.     Gizwits_Init();         //ЭÒé³õʼ»¯
  104.         printf("--------»úÖÇÔƲâÊÔʵÑé----------\r\n");
  105.         printf("KEY1:AirLinkÁ¬½Óģʽ\t KEY_UP:¸´Î»\r\n\r\n");
  106.         Adc_Init();
  107.         //userHandle();//Óû§²É¼¯
  108.    
  109.        gizwitsHandle((dataPoint_t *)¤tDataPoint); //ЭÒé´¦Àí
  110.       Read_HX();  //¶ÁHX711оƬÊä³öµÄÊý¾Ý

  111.                
  112.            while(1)
  113.         {   
  114.            //userHandle();//Óû§²É¼¯
  115.          
  116.        gizwitsHandle((dataPoint_t *)¤tDataPoint); //ЭÒé´¦Àí
  117.             key = KEY_Scan(0);
  118.                 if(key==KEY1_PRES)//KEY1°´¼ü
  119.                 {
  120.                         printf("WIFI½øÈëAirLinkÁ¬½Óģʽ\r\n");
  121.                         gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-linkģʽ½ÓÈë
  122.                 }                       
  123.                 if(key==WKUP_PRES)//KEY_UP°´¼ü
  124.                 {  
  125.                         printf("WIFI¸´Î»£¬ÇëÖØÐÂÅäÖÃÁ¬½Ó\r\n");
  126.                         gizwitsSetMode(WIFI_RESET_MODE);//WIFI¸´Î»
  127.                 }
  128.                 delay_ms(200);
  129.                        
  130.                 Read_HX711() ;
  131.                
  132. printf("whileÀïµÄvalÖµ     %d     \n",*p);
  133.                
  134.                
  135.                 if(*p>100)
  136.                 {
  137.                         Read_HX711() ;
  138.                    if(*p<50)
  139.                    {
  140.                            LED2=0;
  141.                            LED3=0;
  142.                            LED9=0;
  143.                            LED10=0;
  144.                    }       
  145.                           
  146.            }
  147.         
  148.                 if(LED2==1)       
  149.                    {
  150.                          
  151.                sum=0;
  152.                            aver=0;
  153.                            for(i=0;i<10;i++)
  154.                             {   a4=Get_Adc_Average(ADC_CH4,20);
  155.                                         sum=sum+a4;
  156.                                 }
  157.                            aver=sum/10;                               
  158.                                 printf("µÚһ·ƽ¾ùÖµ   %d\n",aver);
  159.                                 if(aver<3010)
  160.                                 {   delay_ms(3000);
  161.                                 sum=0;
  162.                            aver=0;
  163.                            for(i=0;i<10;i++)
  164.                             {   a4=Get_Adc_Average(ADC_CH4,20);
  165.                                         sum=sum+a4;
  166.                                 }
  167.                            aver=sum/10;                       
  168.                                         if(aver<3010)
  169.                                     {   printf("¹Ø±Õ¼ÌµçÆ÷Ç°µÄ¾ùÖµ   %d\n",aver);
  170.                                                 LED2=0;       
  171.                                                 BEEP=!BEEP;
  172.                                         BEEP=!BEEP;
  173.                                         BEEP=!BEEP;
  174.                                         BEEP=!BEEP;
  175.                                         BEEP=!BEEP;
  176.                                         BEEP=!BEEP;
  177.                                         }
  178.                                        
  179.                         }

  180.                    }
  181.                   
  182.                    if(LED3==1)       
  183.                    {
  184.                          
  185.                sum=0;
  186.                            aver=0;
  187.                            for(i=0;i<10;i++)
  188.                             {   a5=Get_Adc_Average(ADC_CH5,20);
  189.                                         sum=sum+a5;
  190.                                 }
  191.                            aver=sum/10;                               
  192.                                 printf("µÚ¶þ·ƽ¾ùÖµ   %d\n",aver);
  193.                                 if(aver<3025)
  194.                                 {   delay_ms(3000);
  195.                                 sum=0;
  196.                            aver=0;
  197.                            for(i=0;i<10;i++)
  198.                             {   a5=Get_Adc_Average(ADC_CH5,20);
  199.                                         sum=sum+a5;
  200.                                 }
  201.                            aver=sum/10;                       
  202.                                         if(aver<3025)
  203.                                     {   printf("¹Ø±Õ¼ÌµçÆ÷Ç°µÄ¾ùÖµ   %d\n",aver);
  204.                                                 LED3=0;       
  205.                                                 BEEP=!BEEP;
  206.                                         BEEP=!BEEP;
  207.                                         BEEP=!BEEP;
  208.                                         BEEP=!BEEP;
  209.                                         BEEP=!BEEP;
  210.                                         BEEP=!BEEP;
  211.                                         }
  212.                                        
  213.                         }

  214.                    }

  215.                   
  216.                   
  217.                  if(LED9==1)       
  218.                    {
  219.                          
  220.                sum=0;
  221.                            aver=0;
  222.                            for(i=0;i<10;i++)
  223.                             {   a6=Get_Adc_Average(ADC_CH6,20);
  224.                                         sum=sum+a6;
  225.                                 }
  226.                            aver=sum/10;                               
  227.                                 printf("µÚÈý·ƽ¾ùÖµ   %d\n",aver);
  228.                                 if(aver<3005)
  229.                                 {   delay_ms(3000);
  230.                                 sum=0;
  231.                            aver=0;
  232.                            for(i=0;i<10;i++)
  233.                             {   a6=Get_Adc_Average(ADC_CH6,20);
  234.                                         sum=sum+a6;
  235.                                 }
  236.                            aver=sum/10;                       
  237.                                         if(aver<3005)
  238.                                     {   printf("¹Ø±Õ¼ÌµçÆ÷Ç°µÄ¾ùÖµ   %d\n",aver);
  239.                                                 LED9=0;       
  240.                                                 BEEP=!BEEP;
  241.                                         BEEP=!BEEP;
  242.                                         BEEP=!BEEP;
  243.                                         BEEP=!BEEP;
  244.                                         BEEP=!BEEP;
  245.                                         BEEP=!BEEP;
  246.                                         }
  247.                                        
  248.                         }

  249.                    }  
  250.                      
  251.                                  if(LED10==1)       
  252.                    {
  253.                          
  254.                sum=0;
  255.                            aver=0;
  256.                            for(i=0;i<10;i++)
  257.                             {   a7=Get_Adc_Average(ADC_CH7,20);
  258.                                         sum=sum+a7;
  259.                                 }
  260.                            aver=sum/10;                               
  261.                                 printf("µÚËÄ·ƽ¾ùÖµ   %d\n",aver);
  262.                                 if(aver<3023)
  263.                                 {   delay_ms(3000);
  264.                                 sum=0;
  265.                            aver=0;
  266.                            for(i=0;i<10;i++)
  267.                             {   a7=Get_Adc_Average(ADC_CH7,20);
  268.                                         sum=sum+a7;
  269.                                 }
  270.                            aver=sum/10;                       
  271.                                         if(aver<3023)
  272.                                     {   printf("¹Ø±Õ¼ÌµçÆ÷Ç°µÄ¾ùÖµ   %d\n",aver);
  273.                                                 LED10=0;       
  274.                                                 BEEP=!BEEP;
  275.                                         BEEP=!BEEP;
  276.                                         BEEP=!BEEP;
  277.                                         BEEP=!BEEP;
  278.                                         BEEP=!BEEP;
  279.                                         BEEP=!BEEP;
  280.                                         }
  281.                                        
  282.                         }

  283.                    }         
  284.                        
  285.                                
  286.                                
  287.                         }
  288.                    }
  289.                
  290.                  





复制代码



0

主题

212

帖子

982

积分

超级版主

Rank: 8Rank: 8

积分
982
沙发
发表于 2018-7-26 10:41:50 | 只看该作者
你要说明白哪个开关,哪个数据自动跳到开
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

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