欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: stm32c8t6智能窗戶控制系統代碼流程圖 [打印本頁]

作者: 六六六兮    時間: 2023-4-19 10:35
標題: stm32c8t6智能窗戶控制系統代碼流程圖

系統框架圖
   主函數
#include "rain.h"
#include "delay.h"
#include "sys.h"
#include "timer.h"
//#include "usart.h"
#include "dht11.h"
#include "oled.h"
#include "stdio.h"
#include "sg90.h"
#include "lanya.h"
#include "mq2.h"
#include "sr501.h"
#include "beep.h"
//u8 alarmFlag = 0;//是否報警的標志
//u8 alarm_is_free = 10;//報警器是否被手動操作,如果被手動操作即設置為0
volatile uint16_t data;//為了保存串口的數據   volatile 代表變量是易變的
u8 humidityH;          //濕度整數部分
u8 humidityL;          //濕度小數部分
u8 temperatureH;   //溫度整數部分
u8 temperatureL;
int i=0;
u8 buf[5];

//溫度小數部分
extern char oledBuf[20];

int fputc(int ch,FILE* f)
{
        USART_SendData(USART3,ch);
        while( USART_GetFlagStatus(USART3,USART_FLAG_TC) == RESET );//等待數據發送完成
        return ch;
}



int main(void)
{        
        HC_SR501Configuration();
        RAIN_Init();
        BEEP_Init();
  MQ2_Init();
  delay_init();
        usart3_init();
        DHT11_Init();
        SG90_pwm_init();
  OLED_Init();
        OLED_ColorTurn(0);
        OLED_DisplayTurn(0);
        TIM2_Int_Init(4099,7199);
        while(1)
        {
               
                        DHT11_Read_Data(&humidityH,&humidityL,&temperatureH,&temperatureL);
        
                //手機控制模式:1、2、3、4、5
                if(data ==0X01)//如果收到0x01,手動開窗戶
                {

                                TIM_SetCompare3(TIM3, 175);//開窗
                }
                else if(data==0x02)//手動關窗
                {
                        TIM_SetCompare3(TIM3, 195);//關?
               
                }
                else if(data==0x03)//自動模式
                {
                        if(MQ2 == 0)//有害氣體,一級優先開窗
                        {
                            TIM_SetCompare3(TIM3, 175);//開窗
                                        BEEP_bi3();
                                        printf("可燃氣體超標 \n");
                        }
                        else
                        {
                           if(HC_SR501 == 1)//有人靠近,二級優先關窗
                        {
                            TIM_SetCompare3(TIM3, 195);//關窗
                                        BEEP_bi1();
                                        printf("注意窗邊 \n");
                                          delay_ms(500);
                        }
      else
                        {
                                        if(RAIN1 == 0)//外面下雨,三級優先關窗
                        {
                            TIM_SetCompare3(TIM3, 195);//關窗
                        }
                                        else
                                        {
                                                
                                                        if(humidityH >= 70)//如果濕度大于70
                                                        {

                                                                        TIM_SetCompare3(TIM3, 195);//關?
                                                        }
                                                        else
                                        TIM_SetCompare3(TIM3, 175);//開窗
                                        }               
                          }
                        }
          }  
               
        else        if(data ==0X04)//如果收到0x04,讀取溫度
                {
      printf("溫度=%d.%d \n",temperatureH,temperatureL);//中文輸出藍牙采用gbk
                        delay_ms(1500);
                }

               
               
        else        if(data ==0X05)//如果收到0x05,讀取濕度
                {
      printf("濕度=%d.%d \n",humidityH,humidityL);
                        delay_ms(1500);
                }
        
        
else if(data !=1|2|4|5 )
        {
                                //上電默認自動
                        if(MQ2 == 0)//有害氣體,一級優先開窗
                        {
                            TIM_SetCompare3(TIM3, 175);//開窗
                                        BEEP_bi3();
                                        printf("可燃氣體超標 \n");
                        }
                        else
                        {
                           if(HC_SR501 == 1)//有人靠近,二級優先關窗
                        {
                                        delay_ms(1000);
                                 if(HC_SR501 == 1)//有人靠近,二級優先關窗
                                 {
                            TIM_SetCompare3(TIM3, 195);//關窗
                                        BEEP_bi1();
                                        printf("注意窗邊 \n");
                                          delay_ms(500);
                                 }
                        }
      else
                        {
                                        if(RAIN1 == 0)//外面下雨,三級優先關窗
                        {
                            TIM_SetCompare3(TIM3, 195);//關窗
                        }
                                        else
                                        {
                                                
                                                        if(humidityH >= 70)//如果濕度大于70
                                                        {

                                                                        TIM_SetCompare3(TIM3, 195);//關?
                                                        }
                                                        else
                                        TIM_SetCompare3(TIM3, 175);//開窗
                                        }               
                          }
                        }
        
                }
               
                          
        }

}



//}

void  USART3_IRQHandler(void)
{
        uint16_t n;//為了接收數據
        

        //判斷中斷是否發生
        if( USART_GetITStatus(USART3,USART_IT_RXNE) != RESET )//代表發生
        {
               
                //處理數據(一般都是為了接收數據)
                n =  USART_ReceiveData(USART3);//通過串口3接受數據
                data = n;
        

               
                USART_ClearITPendingBit(USART3 ,USART_IT_RXNE);
        }

}
        

原理圖: 無
仿真: 無
APP:無
Keil代碼下載: 程序.7z (210.87 KB, 下載次數: 38)

1681871704160.jpg (56.01 KB, 下載次數: 98)

手機操作流程

手機操作流程

1681871640509.jpg (62.5 KB, 下載次數: 90)

程序流程圖

程序流程圖

作者: lockedleftwing    時間: 2023-12-24 10:30
可惜沒有APP





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1