RM新时代足球交易平台

    1. <del id="lv5ic"></del>

      <dfn id="lv5ic"><abbr id="lv5ic"></abbr></dfn>
    2. NEWS CENTER
      新聞資訊
      展開分類
      收起分類

      環(huán)境監(jiān)測系統(tǒng)軟件部分的編程實現(xiàn)!

      來源:三水智能化環(huán)境監(jiān)測 發(fā)布時間:2020-05-15 關(guān)鍵詞: 環(huán)境監(jiān)測系統(tǒng)

      由于環(huán)境監(jiān)測系統(tǒng)涉及的傳感器及通信接口較多,如USART、SPI、I2C等,所以設(shè)置硬件狀態(tài)標(biāo)志及軟件事件隊列時,分別儲存底層的硬件觸發(fā)標(biāo)志和需要處理的軟件事件。環(huán)境監(jiān)測系統(tǒng)軟件設(shè)計時,注意函數(shù)封裝,基于STM32標(biāo)準(zhǔn)外設(shè)庫基礎(chǔ)上,逐個優(yōu)化,方便讀取和修改代碼。環(huán)境監(jiān)測系統(tǒng)總體流程圖如圖所示。

      環(huán)境監(jiān)測系統(tǒng)軟件部分的編程實現(xiàn)!

      環(huán)境監(jiān)測系統(tǒng)上電后,先進(jìn)行系統(tǒng)時鐘初始化、外部事件中斷配置、串口初始化、I2C配置及LCD初始化,為后續(xù)處理做準(zhǔn)備,讀取BMP180校準(zhǔn)系數(shù)及初始化PMS5003和QQ物聯(lián)模塊,并進(jìn)入隊列事件循環(huán),不斷執(zhí)行處理底層硬件觸發(fā)事件和事件處理隊列,及時更新LCD液晶屏。該流程包括HalEvent( )和ManageEvent( )兩個重要函數(shù),前者用來處理各種底層觸發(fā)事件,后者用來處理事件隊列事件。其中,HalEvent( )函數(shù)的關(guān)鍵代碼如下:

      if(status_hal& HALEVENT_FLAG_UART_READ)

      Get_UART_Data(Rx_Data_len,LumMod_Rx_Buf);//從串口讀數(shù)據(jù)

      if(status_hal& HALEVENT_FLAG_TIM3_OVR)

      TIME_10ms( );//處理10 ms數(shù)據(jù),模擬分時處理

      if(status_hal& HALEVENT_FLAG_KEY_INT)

      Key_handle( );//處理按鍵事件

      在硬件中斷及軟件處理環(huán)節(jié)中若需要后續(xù)軟件處理的情況,會在相應(yīng)環(huán)節(jié)將需要處理的事件寫入事件隊列,ManageEvent( )會選取優(yōu)先事件進(jìn)行處理,實現(xiàn)隊列的管理。其算法如下所示。

      if(!(isEmpty( ))) cmd=ReadEventList( );//若是列表不為空則讀取指令進(jìn)行分析

      switch(cmd&0xff00)

      {

      case EVENT_TIME_100 ms: Time_100 ms_handle( );

      break; // 每100 ms對相應(yīng)要處理的事情進(jìn)行一次判斷

      case EVENT_TIME_SECOND:One_Second_handle( );

      break; // 每秒對要處理的事情進(jìn)行一次判斷

      case EVENT_READ_SENSOR_DATA:Read_Sensor( );

      break; // 發(fā)送命令讀取傳感器數(shù)據(jù)

      case EVENT_WIFI_WIFI_RESET:wifi_reset( );

      break; // 重啟WIFI模塊

      case EVENT_WIFI_SMART_LINK:wifi_Goto_Smartlink( );

      break; // 令WIIF進(jìn)入SMARTlink模式

      case EVENT_WIFI_READ_STATUS:Read_Wifi_STATUS( );

      break; // 讀WIFI模塊狀態(tài)

      case EVENT_WIFI_SEND_QQ_TEXT:Send_TEXT_TO_QQ( );

      break; // 向QQ聊天界面發(fā)送消息(實時推送到QQ消息)

      case EVENT_SEND_AQI_TO_WIFI: Send_AQI_To_QQ_H5( );

      break; // 向QQ H5設(shè)備界面發(fā)送數(shù)據(jù)

      case EVENT_SEND_TEMP_TO_WIFI: Send_Temperature_To_QQ_H5( );

      break; // 向QQ H5設(shè)備界面發(fā)送數(shù)據(jù)

      default:

      break;

      }

      RM新时代足球交易平台

      1. <del id="lv5ic"></del>

        <dfn id="lv5ic"><abbr id="lv5ic"></abbr></dfn>

        1. <del id="lv5ic"></del>

          <dfn id="lv5ic"><abbr id="lv5ic"></abbr></dfn>
        2. RM新时代官方网站|首入球时间 RM新平台诈骗 RM新时代APP官网 新时代官方下载 rm资金盘