立即注册 登录
返回首页

uid:436103的个人空间

日志

STM32+BMP280

已有 1263 次阅读2020-2-11 18:23

/*①*****************主程序**********************************************************************************/
int main(void)
 {
LUX=55;
  LUY=60;
  RUX=LUX+210;
  RUY=LUY;
    POINT_X=165;
  POINT_Y=467;

   fistsca=1;            //当设备开机后置1,用于更新时间   
   First_Powerup=1;      //当设备开机后置1,用于更新时间
 
delay_init();          //延时函数初始化
   SystemInit();   
   RCC_Configuare();
   NVIC_Configuare();
   TIM3_Configuare();
   ds1302_gpio_init();
   Init_IO();
   Init_IN_OUT();
   IIC_Init();  
     BMP280Init();
DS1302_Init();

 
   Lcd_Init();          //初始化OLED  
   LCD_Clear(BLACK);
   BACK_COLOR=BLACK;
 

      PVD_Init();        //掉电检测
    

      readflash7();                  //读取FLASH中最高海拔
  Alatitude_flash=temp_flash;    //flash最高海拔保存到缓存中
      HUD_Static(); //HUD静态的标线显示

 

while(1)
     {  
/*A************************************开机执行一次 显示数据****************************************************************/        
if((First_Powerup == 1)|(O_Clock == 1))          //设备开机或者0点更新 年月日
            {
  O_Clock=0;                              //0点时间激活
              First_Powerup=0;                        //设备开机

                  display_real_time();           //获取时间
                ConversionNL(0,year,month,day);         //农历转换                
  SHOW_TIME_YMD();                        //⑩⑦ 显示年月日星期
  jishiben();                             //记事本
SHOW_UP();                              //抬头显示
                show_BME280Data();                     //获取海拔数据
                  haiba_show(ALADOUBLE);                 //实际海拔显示                                                    
                  biaochi(ALATEMP);                       //标尺的刻度
                  list_baiba(ALATEMP);                 //实际海拔刻度线和圈
          T_H_Q_P(ALADOUBLE,PRESSSHOW,0);           //气压、温度等显示
             }
/*************************************时间数据和显示**************************************************************/  
                    if(Read_Time)                        //读取DS1302时间到
                         {
                          Read_Time=0;                 //计时时间到读取
                            display_real_time();         //获取时间
  SHOW_TIME_HMS();             //显示时分秒
                          Pointer();                   //三角形
  time_runing_counter++;
                         }
/*************************************气压数据和显示**************************************************************/  
                              //if(Read_BME280)                         //通过定时 读取BME280参数
        if(time_runing_counter==5)              //通过时间计数读取
                                 {
   Display_Asc_String(80,10,3,"RBM",GREEN);   //READ BME280
   time_runing_counter=0;
                                   Read_BME280=0;
                                     show_BME280Data();                //获取海拔数据
                                       haiba_show(ALADOUBLE);            //实际海拔显示                                   
                                       biaochi(ALATEMP);                 //标尺的刻度
                                       list_baiba(ALATEMP);            //实际海拔刻度线和圈  
                               T_H_Q_P(ALADOUBLE,PRESSSHOW,2);   //气压、温度等显示
 
   counter_HQTP++;                 //温度氧含量等显示计算次数每4次计算一次0.5S*4=2S
                                   
                                   }  
                                       Display_Asc_String(80,10,3,"RBM",BLACK);   //READ BME280



/*************************************气压数据和显示**************************************************************/
               if(FUNCTION_K5())
{
FC9_MAX_Alatitude();
    // LCD_ShowNum(100,70,ALATEMP,5,GREEN,32);
     }
               if(FC8_K3_K4())
{
                  ;
}  




///*************************************气压数据和显示**************************************************************/
if(show_alaw)           //定时2秒启动
          {
           show_alaw=0;
if((max_show==1)&&(Function_num!=11))
{
                Function_num=10;}                    
}

/*************************************时间数据设置**************************************************************/  
if(keypros())
{
     DEC_BCD();       //时间函数10进制转换16进制
   Ds1302Init();    //将设置的时间写入芯片
   display_real_time();           //获取时间
   SHOW_TIME_YMD();                        //⑩⑦ 显示年月日星期
   ConversionNL(0,year,month,day);         //农历转换
}


jishi();








        }
}
/*①*****************主程序**********************************************************************************/
int main(void)
 {
LUX=55;
  LUY=60;
  RUX=LUX+210;
  RUY=LUY;
    POINT_X=165;
  POINT_Y=467;

   fistsca=1;            //当设备开机后置1,用于更新时间   
   First_Powerup=1;      //当设备开机后置1,用于更新时间
 
delay_init();          //延时函数初始化
   SystemInit();   
   RCC_Configuare();
   NVIC_Configuare();
   TIM3_Configuare();
   ds1302_gpio_init();
   Init_IO();
   Init_IN_OUT();
   IIC_Init();  
     BMP280Init();
DS1302_Init();

 
   Lcd_Init();          //初始化OLED  
   LCD_Clear(BLACK);
   BACK_COLOR=BLACK;
 

      PVD_Init();        //掉电检测
    

      readflash7();                  //读取FLASH中最高海拔
  Alatitude_flash=temp_flash;    //flash最高海拔保存到缓存中
      HUD_Static(); //HUD静态的标线显示

 

while(1)
     {  
/*A************************************开机执行一次 显示数据****************************************************************/        
if((First_Powerup == 1)|(O_Clock == 1))          //设备开机或者0点更新 年月日
            {
  O_Clock=0;                              //0点时间激活
              First_Powerup=0;                        //设备开机

                  display_real_time();           //获取时间
                ConversionNL(0,year,month,day);         //农历转换                
  SHOW_TIME_YMD();                        //⑩⑦ 显示年月日星期
  jishiben();                             //记事本
SHOW_UP();                              //抬头显示
                show_BME280Data();                     //获取海拔数据
                  haiba_show(ALADOUBLE);                 //实际海拔显示                                                    
                  biaochi(ALATEMP);                       //标尺的刻度
                  list_baiba(ALATEMP);                 //实际海拔刻度线和圈
          T_H_Q_P(ALADOUBLE,PRESSSHOW,0);           //气压、温度等显示
             }
/*************************************时间数据和显示**************************************************************/  
                    if(Read_Time)                        //读取DS1302时间到
                         {
                          Read_Time=0;                 //计时时间到读取
                            display_real_time();         //获取时间
  SHOW_TIME_HMS();             //显示时分秒
                          Pointer();                   //三角形
  time_runing_counter++;
                         }
/*************************************气压数据和显示**************************************************************/  
                              //if(Read_BME280)                         //通过定时 读取BME280参数
        if(time_runing_counter==5)              //通过时间计数读取
                                 {
   Display_Asc_String(80,10,3,"RBM",GREEN);   //READ BME280
   time_runing_counter=0;
                                   Read_BME280=0;
                                     show_BME280Data();                //获取海拔数据
                                       haiba_show(ALADOUBLE);            //实际海拔显示                                   
                                       biaochi(ALATEMP);                 //标尺的刻度
                                       list_baiba(ALATEMP);            //实际海拔刻度线和圈  
                               T_H_Q_P(ALADOUBLE,PRESSSHOW,2);   //气压、温度等显示
 
   counter_HQTP++;                 //温度氧含量等显示计算次数每4次计算一次0.5S*4=2S
                                   
                                   }  
                                       Display_Asc_String(80,10,3,"RBM",BLACK);   //READ BME280



/*************************************气压数据和显示**************************************************************/
               if(FUNCTION_K5())
{
FC9_MAX_Alatitude();
    // LCD_ShowNum(100,70,ALATEMP,5,GREEN,32);
     }
               if(FC8_K3_K4())
{
                  ;
}  




///*************************************气压数据和显示**************************************************************/
if(show_alaw)           //定时2秒启动
          {
           show_alaw=0;
if((max_show==1)&&(Function_num!=11))
{
                Function_num=10;}                    
}

/*************************************时间数据设置**************************************************************/  
if(keypros())
{
     DEC_BCD();       //时间函数10进制转换16进制
   Ds1302Init();    //将设置的时间写入芯片
   display_real_time();           //获取时间
   SHOW_TIME_YMD();                        //⑩⑦ 显示年月日星期
   ConversionNL(0,year,month,day);         //农历转换
}


jishi();








        }
}


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

返回顶部