freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)的一氧化碳檢測儀的設(shè)計-在線瀏覽

2025-08-14 19:27本頁面
  

【正文】 區(qū)空時產(chǎn)生OnComm事件;(8) Settings串口的參數(shù)設(shè)置,依次為波特率、奇偶校驗、數(shù)據(jù)位數(shù)、停止位數(shù)。表22 控件機(jī)器屬性設(shè)置情況控件控件IDCaption需要添加的變量及變量類型靜態(tài)文本IDC_STATIC 接收顯示靜態(tài)文本IDC_STATIC發(fā)送輸出編輯框IDC_EDIT_RXDATAm_strEditRXData Valua CString編輯框IDC_EDIT_TXDATAm_strEditRXData Valua CString按鈕IDC_BUTTON_MANALSEND發(fā)送MSComm控件IDC_MSComm1m_ctrlComm control (2) 在當(dāng)前工程中添加MSComm控件點(diǎn)擊菜單Add To Project—Components and Controls,在打開的對話框中選擇“Registered ActiveX Controls”,再雙擊此項出現(xiàn)控件選擇對話框“Component and Controls Gallery”,在該框中選擇“Microsoft Communications control,version ”控件,再單擊“Insert”按鈕,提示“Insert this ponent?”,確認(rèn)后,可以看到加入CMSComm類的Confirm Class對話框。(3)初始化串口通過前面的操作,Class #include “”語句。//{{AFX_INCLUDES()#include “”//}}AFX_INCLUDES下面,在SCommTestDlg::OnInitDialog()函數(shù)中寫入對串口的初始化語句,串口的初始化由IDC_MSCOMM1的CMSComm控制變量m_ctrlComm來設(shè)置串口的控件屬性。具體流程如圖23所示。函數(shù)原型:static UINT CommThread(LPVOIDpParam)。為了防止這三個事件同時對同一個對象(串口實例)進(jìn)行操作,它們之間的同步方式采用Critical Section(排斥體)。BYTE Comm_Packet_Len。 //依次存放串口接收到的數(shù)據(jù)long Comm_Packet_Index。 COleSafeArray safearray_inp。 //轉(zhuǎn)換為數(shù)組時使用的變量 BYTE rxdata[204]。 //字符型變量 int temp = 0。 //ecu回傳校驗碼if(() == 2) //事件值為2表示接收緩沖區(qū)內(nèi)有字符 {{ m=(); variant_inp = () //讀緩沖區(qū) safearray_inp = variant_inp; //VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量 len = (),//得到有效數(shù)據(jù)長度 for(k = 0。 k++) //將ColeSafeArray型變量轉(zhuǎn)換為BYTE型數(shù)組 { (amp。圖23 串口接收數(shù)據(jù)流程圖為了提高數(shù)據(jù)精度,對一氧化碳濃度數(shù)據(jù)采用兩位整數(shù)和一位小數(shù)的方式顯示,在發(fā)送數(shù)據(jù)時,最前一個字節(jié)為FF起始位,接著的一個字節(jié)為整數(shù)部分,再接著發(fā)一個字節(jié)的數(shù)據(jù)為小數(shù)部分。[12](2) CDC::LineTo (int x,int y) 畫一條由當(dāng)前點(diǎn)到參數(shù)指定點(diǎn)的線;功能:函數(shù)lineto()使用當(dāng)前繪圖色、線型及線寬,從當(dāng)前位置畫一直線到指定位置。  ?。?  返回值:無。用法:函數(shù)調(diào)用方式為void arc(int x,int y,int startangle,int endangle,int radius),   說明:參數(shù)x,y為圓心坐標(biāo),startangle與endangle分別為起始角與終止角,radius為半徑。同往常一樣,360度與0度重合。例如指定300度和90度分別為起始角和終止角,與指定300度和450度分別為起始角和終止角可畫出相同的弧。函數(shù)arc()能畫封閉圓,只要取起始角為0度,終止角為360度即可。arc();返回值:無。[11] 功能:將多條線按照次序連接起來;用法:hdc Long,在其中繪圖的設(shè)備場景 lpPoint POINTAPI,nCount POINTAPI結(jié)構(gòu)數(shù)組中的第一個POINTAPI結(jié)構(gòu)。會從第一個點(diǎn)到第二個點(diǎn)畫一條線,依次類推 CO數(shù)據(jù)圖形化顯示當(dāng)有數(shù)據(jù)向串口發(fā)過來時,程序可以將數(shù)據(jù)接收到,接收的數(shù)據(jù)是字符型的,那么將數(shù)據(jù)轉(zhuǎn)化為數(shù)字型的,再將這個數(shù)據(jù)的大小作為畫圖的某一個點(diǎn)的縱坐標(biāo),橫坐標(biāo)為數(shù)據(jù)的序號。繪圖程序首先通過圖形設(shè)備接口獲取設(shè)備環(huán)境句柄,只有得到這個句柄,Windows才允許應(yīng)用程序使用設(shè)備;之后調(diào)用繪圖函數(shù),在函數(shù)中僵局并作為一個參數(shù)傳入,想Windows標(biāo)明需要使用的設(shè)備,并最終完成圖形繪制。Windows應(yīng)用程序繪制圖形具體步驟如下:(1) 取得指定窗口的當(dāng)前顯示設(shè)備環(huán)境;(2) 選擇用戶坐標(biāo)系及映射方式;(3) 設(shè)備用戶坐標(biāo)系中的觀察窗口和設(shè)備坐標(biāo)系中的顯示視區(qū);(4) 輸出圖形;(5) 釋放所使用的顯示設(shè)備環(huán)境。只要當(dāng)全局變量中的數(shù)值發(fā)生變化后就使用函數(shù)thisInvalidate()強(qiáng)制重載OnPaint()函數(shù),那么數(shù)據(jù)圖就可以動起來了。amp。amp。i(NextTime/5);i++) //進(jìn)行連續(xù)畫點(diǎn) { (108+(5*i),250LineHight[i]); //將點(diǎn)連成線 } else for (int i=0。i++)//連續(xù)畫點(diǎn) { (108+(5*i),250LineHight[i]), //將點(diǎn)連成線 }void CCommDlg::Display(){ if (NextTime = 600 amp。 stop==FALSE) { LineHight [NextTime/5] = LineHight [121]; //數(shù)組中保存的是最新采集的一組數(shù)據(jù) } else { for (int i=0;i120;i++) //依次采集120個以內(nèi)的數(shù)據(jù) { LineHight [i] = LineHight [i+1]; //保存最新采集的數(shù)據(jù) } LineHight[120]=LineHight[121]; } NextTime = NextTime+5; //繼續(xù)采集數(shù)據(jù) thisInvalidate(); //重載OnPaint()函數(shù) return。CFile與CArchive類共同使用,支持MFC對象的串行化。通常,一個磁盤文件在CFile構(gòu)造時自動打開并在析構(gòu)時關(guān)閉。類CFile直接派生于類CObject,是所有MFC文件類的基類,其繼承關(guān)系如圖24所示。 文件類的繼承關(guān)系類CFile的構(gòu)造函數(shù)CFile用于創(chuàng)建文件類對象,函數(shù)聲明如下:CFile( );CFile(int hFile);CFile(LPCTSTR lpszFileName,UINT nopenFlags);Throw(CFileException);其中,參數(shù)hFile是已打開文件的句柄;參數(shù)lpszFileName是表示文件路徑的字符串;參數(shù)nOpenFlags是共享和訪問模式標(biāo)識,其取值如表23所示。輸入/輸出:Read 從文件的當(dāng)前位置讀數(shù)據(jù); ReadHuge 可從文件的當(dāng)前位置讀取大于64K數(shù)據(jù),Write 將文件數(shù)據(jù)寫入當(dāng)前文件位置;WriteHuge 可將文件的大于64K數(shù)據(jù)寫到當(dāng)前文件位置;Flush 溢去未被寫入的任何數(shù)據(jù)。文件封鎖方法:LockRange 在文件中封鎖一定范圍內(nèi)的字節(jié);UnlockRange 解鎖一定范圍內(nèi)的字節(jié)。文件靜態(tài)方法:Rename 改名指定文件(靜態(tài)函數(shù));Remove 刪除指定文件(靜態(tài)函數(shù));   GetStatus 獲取指定文件的狀態(tài)(靜態(tài));SetStatus 設(shè)置指定文件的狀態(tài)(靜態(tài))。MFC中有一個專門用來進(jìn)行文件查找的類CFileFind,使用它可以方便快捷地進(jìn)行文件的查找。MFC的類CFileDialog用于實現(xiàn)這種功能。   在構(gòu)造CFileDialog對象時,如果在參數(shù)中指定了OFN_ALLOWMULTISELECT風(fēng)格,則在此對話框中可以進(jìn)行多選操作。3. 文件的讀寫文件讀寫的最普通的方法是直接使用CFile進(jìn)行,但是它的使用繁瑣,而且功能非常簡單。首先還是用CFile聲明一個對象,然后用這個對象的指針做參數(shù)聲明一個CArchive對象,就可以非常方便地存儲各種復(fù)雜的數(shù)據(jù)類型了。使用CArchive的ReadClass()和WriteClass()還可以進(jìn)行類的讀寫。   CStdioFile mFile。 (“d:\\temp\\”, CFile::modeWrite, amp。 CString string=I am a string.。 ()。臨時文件的使用方法基本與常規(guī)文件一樣,只是文件名應(yīng)該調(diào)用函數(shù)GetTempFileName()獲得。得到此臨時文件名以后,就可以用它來建立并操作文件了。SDK中的文件相關(guān)函數(shù)常用的有CopyFile()、CreateDirectory()、DeleteFile()、MoveFile()。如: ……其算法如下://將數(shù)據(jù)保存到文件中if (()=600) //600個字符剛好對應(yīng)120個數(shù)據(jù){ CStdioFile readfile, CString readstr, readstr2, if((FilePath,CFile::modeRead)) //以只讀方式打開文件 { while((readstr)) //逐行查詢,至到文件尾 { readstr2+=readstr; //依次查詢 } ()。 m_ReceiveData=; //清除編輯框內(nèi)容 break; }} 查看之前存儲的數(shù)據(jù)查看以前的數(shù)據(jù)的方法是,將數(shù)據(jù)從文件中取出并將每一個數(shù)據(jù)都付給那一個全局變量,最后同樣用thisInvalidate()就能顯示以前的數(shù)據(jù)了。void CCommDlg::OnButton7() //按秒移動查看之前的數(shù)據(jù)即按方式查看{ if (stop==FALSE) //繼續(xù)接收數(shù)據(jù) { gogo=NextTime; DTemp=m_ReceiveData; for (int i =0;i120;i++) LHTemp[i]=LineHight[i];//依次接收120以內(nèi)個數(shù)據(jù) } stop=TRUE; //關(guān)閉接收數(shù)據(jù),使顯示區(qū)和數(shù)據(jù)區(qū)用來為顯示原來數(shù)據(jù)用 if (NextTime==0) NextTime=595; //接收數(shù)據(jù)做多為595個字符 NextTime=NextTime595; SetDlgItemText (IDC_STOPRECV,“繼續(xù)顯示”); //先取出文件中的數(shù)據(jù),放入一個數(shù)組中 CStdioFile file; if((FilePath,CFi
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1