新聞中心

        EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 串口調(diào)試助手源程序

        串口調(diào)試助手源程序

        作者: 時(shí)間:2012-04-25 來(lái)源:網(wǎng)絡(luò) 收藏
        T-TRANSFORM: none; COLOR: rgb(95,95,95); TEXT-INDENT: 0px; PADDING-TOP: 0px; WHITE-SPACE: normal; LETTER-SPACING: normal; BACKGROUND-COLOR: rgb(255,255,255); orphans: 2; widows: 2; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">

        void CSCommTestDlg::OnTimer(UINT nIDEvent)
        {
        // TOD Add your message handler code here and/or call default
        OnButtonManualsend();
        CDialog::OnTimer(nIDEvent);
        }

        再在在主對(duì)話(huà)框中加入一個(gè)復(fù)選接鈕,ID為IDC_CHECK_AUTOSEND Caption: 自動(dòng)發(fā)送(周期1秒),再利用ClassWizard為其添加BN_CLICK消息處理函數(shù)void CSCommTestDlg::OnCheckAutosend():

        void CSCommTestDlg::OnCheckAutosend()
        {
        // TOD Add your control notification handler code here
        m_bAutoSend=!m_bAutoSend;
        if(m_bAutoSend)
        {
        SetTimer(1,1000,NULL);//時(shí)間為1000毫秒
        }
        else
        {
        KillTimer(1); //取消定時(shí)
        }
        }

        其中:m_bAutoSend為BOOL型變量,在CLASSVIEW中為CSCommTestDlg類(lèi)加入,并在構(gòu)造函數(shù)中初始化:

        m_bAutoSen=FALSE;
        現(xiàn)在可以運(yùn)行程序測(cè)試了。

         

        11.什么是VARIANT數(shù)據(jù)類(lèi)型?如何使用VARIANT數(shù)據(jù)類(lèi)型?

        不知如何使用VARIANT數(shù)據(jù)類(lèi)型, 有不少朋友對(duì)VARIANT這個(gè)新的數(shù)據(jù)類(lèi)型大感頭疼。SetOutput()函數(shù)中 需要的VARIANT參數(shù)還可以使用COleVariant類(lèi)的構(gòu)造函數(shù)簡(jiǎn)單生成,現(xiàn)在GetInput()函數(shù)的返回值也成了VARIANT類(lèi)型,那么如何從返回的值中提取有用的內(nèi)容。 VARIANT及由之而派生出的COleVariant類(lèi)主要用于在OLE自動(dòng)化中傳遞數(shù)據(jù)。實(shí)際上VARIANT也只不過(guò)是一個(gè)新定義的結(jié)構(gòu)罷了,它的主要成員包括一個(gè)聯(lián)合體及一個(gè)變量。該聯(lián)合體由各種類(lèi)型的數(shù)據(jù)成員構(gòu)成, 而該變量則用來(lái)指明聯(lián)合體中目前起作用的數(shù)據(jù)類(lèi)型。我們所關(guān)心的接收到的數(shù)據(jù)就存儲(chǔ)在該聯(lián)合體的某個(gè)數(shù)據(jù)成員中。 該聯(lián)合體中包含的數(shù)據(jù)類(lèi)型很多,從一些簡(jiǎn)單的變量到非常復(fù)雜的數(shù)組和指針。由于通過(guò)接收到的內(nèi)容常常是一個(gè)字節(jié)串,我們將使用其中的某個(gè)數(shù)組或指針來(lái)訪(fǎng)問(wèn)接收到的數(shù)據(jù)。這里推薦給大家的是指向一個(gè)SAFEARRAY(COleSafeArray)類(lèi)型變量。新的數(shù)據(jù)類(lèi)型SAFEARRAY正如其名字一樣,是一個(gè)“安全數(shù)組”,它能根據(jù)系統(tǒng)環(huán)境自動(dòng)調(diào)整其16位或32 位的定義,并且不會(huì)被OLE改變(某些類(lèi)型如BSTR在16位或32位應(yīng)用程序間傳遞時(shí)會(huì)被OLE翻譯從而破壞其中的二進(jìn)制數(shù)據(jù))。大家無(wú)須了解SAFEARRAY的具體定義,只要知道它是另外一個(gè)結(jié)構(gòu),其中包含一個(gè) (void *)類(lèi)型的指針pvData,其指向的內(nèi)存就是存放有用數(shù)據(jù)的地方。 簡(jiǎn)而言之,從GetInput()函數(shù)返回的VARIANT類(lèi)型變量中,找出parray 指針,再?gòu)脑撝羔樦赶虻腟AFEARRAY變量中找出pvData指針,就可以向訪(fǎng)問(wèn)數(shù)組一樣取得所接收到的數(shù)據(jù)了。具體應(yīng)用請(qǐng)參見(jiàn)void CSCommTestDlg::OnComm()函數(shù)。

        大概我現(xiàn)在也說(shuō)不清這個(gè)問(wèn)題,我自己從第一次接觸這個(gè)東西,到現(xiàn)在還是給別人講不清。


        上一頁(yè) 1 2 3 下一頁(yè)

        關(guān)鍵詞: 串口 調(diào)試 源程序

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 会泽县| 历史| 集安市| 湖南省| 平凉市| 鄂伦春自治旗| 徐水县| 青田县| 顺平县| 密云县| 阜宁县| 屏东市| 酒泉市| 青阳县| 朝阳区| 兴国县| 西乌珠穆沁旗| 明星| 长岛县| 枝江市| 辽宁省| 佳木斯市| 华阴市| 黄大仙区| 安庆市| 湘阴县| 仁寿县| 巴马| 伊金霍洛旗| 临沧市| 油尖旺区| 循化| 永济市| 东辽县| 容城县| 阿克陶县| 景洪市| 定陶县| 扬州市| 兴海县| 牟定县|