日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 基于嵌入式技術(shù)的溫度測量系統(tǒng)設(shè)計

          基于嵌入式技術(shù)的溫度測量系統(tǒng)設(shè)計

          作者: 時間:2010-01-07 來源:網(wǎng)絡(luò) 收藏

            本系統(tǒng)用到了串口通信中間件和數(shù)據(jù)隊列中間件,即只需要將中間件程序添加到系統(tǒng)項目表中去,調(diào)用中間件的接口函數(shù)即可實現(xiàn)串口的通信,如:調(diào)用URAT0Init(9600)實現(xiàn)串口的初始化,其中,波特率可直接進行調(diào)整;調(diào)用URAT0Putch(temp4)實現(xiàn)將temp4中存儲的數(shù)據(jù)通過串口發(fā)送出去。當要將應(yīng)用程序移植到其他系統(tǒng)上時,只要對這兩個函數(shù)及其他相關(guān)函數(shù)進行適當修改,而無需改變應(yīng)用程序。

            上位機的通信程序運用了MSComm 控件,它是Microsoft公司提供的,簡化Windows下串行通信編程的ActiveX控件,該控件提供了兩種處理通信問題的方法,本系統(tǒng)采用了事件驅(qū)動法。當串口發(fā)生事件或錯誤時,MSComm控件會產(chǎn)生OnComm事件,用戶程序可以捕獲該事件進行相應(yīng)處理。在編程過程中,就可以在OnComm事件處理函數(shù)中加入相應(yīng)的處理代碼。

            利用MSComm控件實現(xiàn)計算機通信的關(guān)鍵是正確設(shè)置MSComm控件的屬性和方法。以下是用VB編寫的部分設(shè)置程序:

            Private Sub Form_Load()

            Me.Show

            MSComm1.CommPort = 1 //選擇串口com1

            MSComm1.Settings = 9600,n,8,1 //設(shè)置MSComm的連接屬性

            MSComm1.RThreshold = 2 //定義閥值為2

            MSComm1.InBufferSize = 2

            i = 0

            Picture1.Visible = False

            On Error Resume Next

            End Sub

            連接屬性BBBB,P,D,S中,BBBB 為波特率,P為奇偶校驗,D為數(shù)據(jù)位數(shù),S為停止位數(shù)。閥值定為2,則在接收緩沖區(qū)中的字節(jié)數(shù)超過“2”時,就轉(zhuǎn)入OnComm()事件處理程序執(zhí)行。

            3. 嵌入式系統(tǒng)軟件

            采用了嵌入式操作系統(tǒng)uC/OS-II,它是專門為計算機的嵌入式應(yīng)用而設(shè)計的。 uC/OS-II是基于優(yōu)先級的占先式多任務(wù)實時內(nèi)核。由于在多任務(wù)實時操作系統(tǒng)中,應(yīng)用程序是以任務(wù)形式運行的,操作系統(tǒng)的一個重要的作用就是任務(wù)的調(diào)度,所以要在操作系統(tǒng)下實現(xiàn)應(yīng)用程序的執(zhí)行,就必須建立任務(wù),在任務(wù)中實現(xiàn)測溫和串行通信等操作。建立任務(wù)如下:

            #include config.h

            #define TASK_STK_SIZE 64 //定義任務(wù)棧的大小為64字節(jié)

            OS_STK TaskStartStk[TASK_STK_SIZE]; //定義任務(wù)棧

            void TaskStart(void *data); //聲明任務(wù)

            int main (void)

            {

            OSInit(); //操作系統(tǒng)初始化

            OSTaskCreate(TaskStart, (void *)0, TaskStartStk[TASK_STK_SIZE - 1], 0); // 建任務(wù)

            OSStart(); //啟動操作系統(tǒng)

            return 0;

            }



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉