日韩精品免费一区二区在线观看 I 久操97 I 丰满妇女强制高潮18xxxx I 最新亚洲中文av在线不卡 I 午夜成人无码片在线观看影院 I 成年人在线免费 I 中文字幕v亚洲日本 I 18禁裸男晨勃露j毛网站 I 黄色精品视频网站 I 一区二区精品在线播放 I 久久一级精品视频 I 日日拍夜夜 I 在线亚洲欧美 I 一本色道久久综合亚洲精品小说 I 亚洲精品久久久久久久蜜桃臀 I 亚洲字幕成人中文在线观看 I 午夜片无码区在线观看视频 I 国产精品入口香蕉 I 黄色亚洲网站 I 亚洲国产成人精品无码区一本 I 国产偷亚洲偷欧美偷精品 I 午夜在线欧美蜜桃 I 91精品国产九九九久久久亚洲 I 亚洲自拍在线观看 I 夜夜嗨刺激精品 I 在线免费观看黄a I 成年人看黄色片 I 国产区女主播在线观看 I 污视频黄 I 婷婷五月俺也去人妻 I 中文字字幕在线中文乱码电影 I av 资源 久久 I 你懂的视频一区二区 I 免费av片在线观看一道本 I 国外三级网页

NEWS CENTER
新聞資訊
展開分類
收起分類

環境監測系統軟件部分的編程實現!

來源:三水智能化環境監測 發布時間:2020-05-15 關鍵詞: 環境監測系統

由于環境監測系統涉及的傳感器及通信接口較多,如USART、SPI、I2C等,所以設置硬件狀態標志及軟件事件隊列時,分別儲存底層的硬件觸發標志和需要處理的軟件事件。環境監測系統軟件設計時,注意函數封裝,基于STM32標準外設庫基礎上,逐個優化,方便讀取和修改代碼。環境監測系統總體流程圖如圖所示。

環境監測系統軟件部分的編程實現!

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

if(status_hal& HALEVENT_FLAG_UART_READ)

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

if(status_hal& HALEVENT_FLAG_TIM3_OVR)

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

if(status_hal& HALEVENT_FLAG_KEY_INT)

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

在硬件中斷及軟件處理環節中若需要后續軟件處理的情況,會在相應環節將需要處理的事件寫入事件隊列,ManageEvent( )會選取優先事件進行處理,實現隊列的管理。其算法如下所示。

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

switch(cmd&0xff00)

{

case EVENT_TIME_100 ms: Time_100 ms_handle( );

break; // 每100 ms對相應要處理的事情進行一次判斷

case EVENT_TIME_SECOND:One_Second_handle( );

break; // 每秒對要處理的事情進行一次判斷

case EVENT_READ_SENSOR_DATA:Read_Sensor( );

break; // 發送命令讀取傳感器數據

case EVENT_WIFI_WIFI_RESET:wifi_reset( );

break; // 重啟WIFI模塊

case EVENT_WIFI_SMART_LINK:wifi_Goto_Smartlink( );

break; // 令WIIF進入SMARTlink模式

case EVENT_WIFI_READ_STATUS:Read_Wifi_STATUS( );

break; // 讀WIFI模塊狀態

case EVENT_WIFI_SEND_QQ_TEXT:Send_TEXT_TO_QQ( );

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

case EVENT_SEND_AQI_TO_WIFI: Send_AQI_To_QQ_H5( );

break; // 向QQ H5設備界面發送數據

case EVENT_SEND_TEMP_TO_WIFI: Send_Temperature_To_QQ_H5( );

break; // 向QQ H5設備界面發送數據

default:

break;

}