日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
RS-232-C端口實(shí)時(shí)監(jiān)控軟件的設(shè)計(jì)實(shí)現(xiàn)
RS-232-C端口實(shí)時(shí)監(jiān)控軟件的設(shè)計(jì)實(shí)現(xiàn)
 更新時(shí)間:2008-8-4 5:18:40  點(diǎn)擊數(shù):9
【字體: 字體顏色

BOOL CCOMReadBuf::GetOneByte(BYTE *cb)
{
m_Lock.Lock();
if(m_nHead==m_nTail)
{
m_Lock.Unlock();
return FALSE;//空
}
*cb=m_readbuf[m_nTail];
if(m_nTail < m_nBufSize-1)
m_nTail++;
else
m_nTail=0;
m_Lock.Unlock();
return TRUE;//空
}

void CCOMReadBuf::Add(BYTE buf[],int nBytes)
{
int nt,i;
m_Lock.Lock();
for(i=0;i BR> {
nt=(m_nHead-m_nTail);
if(nt<0)
nt+=m_nBufSize;
if(nt+1==m_nBufSize)
break;//緩沖區(qū)滿
m_readbuf[m_nHead]=buf[i];
if(m_nHead < m_nBufSize-1)
m_nHead++;
else
m_nHead=0;
}
m_Lock.Unlock();
}

(四) 控制命令的發(fā)送

  控制命令可以從對(duì)話條上的編輯框獲取,然后就可以通過(guò)寫(xiě)文件形式從端口發(fā)送出去,這部分實(shí)現(xiàn)起來(lái)較簡(jiǎn)單,也牽扯不到線程等技術(shù)。主要的代碼主要有:

……
file://從對(duì)話條獲取命令行
nRead=m_wndDlgBar.GetDlgItemText(IDC_EDIT_SEND,buf,500);
file://向端口發(fā)送命令
if(nRead>0)
{
buf[nRead]=0x0d;
buf[nRead+1]=0x00;
::WriteFile(g_hCom,buf,nRead+1,&dwActWrite,NULL);
}
……


  (五) 監(jiān)測(cè)信息的顯示

  本程序選擇了列表視圖作為數(shù)據(jù)的顯示途徑。為了能及時(shí)的將接收到的數(shù)據(jù)反饋給監(jiān)控者,在視類中通過(guò)定時(shí)器完成定時(shí)刷新的功能,可以在視類的OnCreate() 函數(shù)里用SetTimer(……)函數(shù)在程序開(kāi)始執(zhí)行時(shí)打開(kāi)定時(shí)器,在OnDestroy()里用KillTimer(……)函數(shù)在程序退出前先關(guān)閉定時(shí)器。在定時(shí)器消息 WM_TIMER的響應(yīng)函數(shù)里完成向列表控件添加最新接收到的信息。主要語(yǔ)句有:

……
file://獲取列表視相關(guān)的列表空間的句柄
CListCtrl &ListCtrl=GetListCtrl();
file://列表有兩列:收到字符的時(shí)間和對(duì)應(yīng)的信息
CTime t = CTime::GetCurrentTime();
CString szTemp;
szTemp.Format("%02d:%02d:%02d",t.GetHour(),t.GetMinute(),t.GetSecond());
file://向列表添加信息
int nIndex=ListCtrl.InsertItem(0, szTemp);
if(-1!=nIndex)
{
m_Buf[m_nCurPoint]=0;
ListCtrl.SetItemText(nIndex,1,LPTSTR(m_Buf));
}
……


  四、 調(diào)試與檢測(cè)

  現(xiàn)在程序已經(jīng)寫(xiě)完,可以編譯運(yùn)行。我們最好先檢驗(yàn)一下機(jī)器串口是否能正常工作,可用DOS下的Comdebug程序檢查。在確認(rèn)串口工作正常后,如果條件允許最好同另一臺(tái)計(jì)算機(jī)或外設(shè)相連,進(jìn)行檢測(cè),如筆者用的是一臺(tái)高頻段數(shù)傳電臺(tái)。如果只有一臺(tái)計(jì)算機(jī)也可以進(jìn)行簡(jiǎn)單的測(cè)試:將計(jì)算機(jī)串口的第2腳和第3腳短接,即自己發(fā)送、接收數(shù)據(jù)。如果接有外設(shè),當(dāng)有采集到的數(shù)據(jù)送到端口時(shí)就會(huì)在列表中將時(shí)間和信息內(nèi)容記錄下來(lái),也可以在對(duì)話條中輸入命令來(lái)控制外設(shè)的工作狀態(tài),完全具備實(shí)時(shí)監(jiān)控軟件所需的功能。

  小結(jié):

  串行通訊在通訊領(lǐng)域被廣泛應(yīng)用,標(biāo)準(zhǔn)的RS-232-C接口已成為計(jì)算機(jī)、外設(shè)、交換機(jī)和許多通訊設(shè)備的標(biāo)準(zhǔn)接口。計(jì)算機(jī)與計(jì)算機(jī)、計(jì)算機(jī)與外設(shè)等都可以通過(guò)RS-232-C接口進(jìn)行方便的連接,以實(shí)現(xiàn)監(jiān)視、控制外設(shè)和傳輸數(shù)據(jù)等目的。對(duì)于其他類型的串口通訊程序本文所介紹的方法也是值得借鑒的。本程序由
Microsoft Visual C++ 6.0編譯、在Windows 98下運(yùn)行通過(guò)。




  • 上一篇: SoC原型驗(yàn)證技術(shù)的研究
  • 下一篇: USB接口類單片機(jī)特點(diǎn)及應(yīng)用
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1