欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
用VC 6.0實(shí)現串行通信的三種方法
本文介紹了在Windows平臺下串行通信的實(shí)現機制,討論了根據不同的條件用Visual C++ 設計串行通信程序的三種方法
 

  摘要: 本文介紹了在Windows平臺下串行通信的實(shí)現機制,討論了根據不同的條件用Visual C++ 設計串行通信程序的三種方法,并結合實(shí)際,實(shí)現對溫度數據的接收監控。

  在實(shí)驗室和工業(yè)應用中,串口是常用的計算機與外部串行設備之間的數據傳輸通道,由于串行通信方便易行,所以應用廣泛。依據不同的條件實(shí)現對串口的靈活編程控制是我們所需要的。

  在光學(xué)鏡片鍍膜工藝中,用單片機進(jìn)行多路溫度數據采集控制,采集結果以串行方式進(jìn)入主機,每隔10S向主機發(fā)送一次采樣數據,主機向單片機發(fā)送相關(guān)的控制命令,實(shí)現串行數據接收,處理,記錄,顯示,實(shí)時(shí)繪制曲線(xiàn)。串行通信程序開(kāi)發(fā)環(huán)境為 VC++ 6.0。

  Windows下串行通信

  與以往DOS下串行通信程序不同的是,Windows不提倡應用程序直接控制硬件,而是通過(guò)Windows操作系統提供的設備驅動(dòng)程序來(lái)進(jìn)行數據傳遞。串行口在Win 32中是作為文件來(lái)進(jìn)行處理的,而不是直接對端口進(jìn)行操作,對于串行通信,Win 32 提供了相應的文件I/O函數與通信函數,通過(guò)了解這些函數的使用,可以編制出符合不同需要的通信程序。與通信設備相關(guān)的結構有COMMCONFIG ,COMMPROP,COMMTIMEOUTS,COMSTAT,DCB,MODEMDEVCAPS,MODEMSETTINGS共7個(gè),與通信有關(guān)的Windows API函數共有26個(gè),詳細說(shuō)明可參考MSDN幫助文件。以下將結合實(shí)例,給出實(shí)現串行通信的三種方法。

  實(shí)現串行通信的三種方法

  方法一:使用VC++提供的串行通信控件MSComm 首先,在對話(huà)框中創(chuàng )建通信控件,若Control工具欄中缺少該控件,可通過(guò)菜單Project --> Add to Project --> Components and Control插入即可,再將該控件從工具箱中拉到對話(huà)框中。此時(shí),你只需要關(guān)心控件提供的對 Windows 通訊驅動(dòng)程序的 API 函數的接口。換句話(huà)說(shuō),只需要設置和監視MSComm控件的屬性和事件。

  在ClassWizard中為新創(chuàng )建的通信控件定義成員對象(CMSComm m_Serial),通過(guò)該對象便可以對串口屬性進(jìn)行設置,MSComm 控件共有27個(gè)屬性,這里只介紹其中幾個(gè)常用屬性:

  CommPort 設置并返回通訊端口號,缺省為COM1。

  Settings 以字符串的形式設置并返回波特率、奇偶校驗、數據位、停止位。

  PortOpen 設置并返回通訊端口的狀態(tài),也可以打開(kāi)和關(guān)閉端口。

  Input 從接收緩沖區返回和刪除字符。

  Output 向發(fā)送緩沖區寫(xiě)一個(gè)字符串。

  InputLen 設置每次Input讀入的字符個(gè)數,缺省值為0,表明讀取接收緩沖 區中的全部?jì)热荨?

  InBufferCount 返回接收緩沖區中已接收到的字符數,將其置0可以清除接收緩 沖區。

  InputMode 定義Input屬性獲取數據的方式(為0:文本方式;為1:二進(jìn)制方式)。

  RThreshold 和 SThreshold 屬性,表示在 OnComm 事件發(fā)生之前,接收緩沖區或發(fā)送緩沖區中可以接收的字符數。

  以下是通過(guò)設置控件屬性對串口進(jìn)行初始化的實(shí)例:

BOOL CSampleDlg:: PortOpen()
{
BOOL m_Opened;
......
m_Serial.SetCommPort(2); // 指定串口號
m_Serial.SetSettings("4800,N,8,1"); // 通信參數設置
m_Serial.SetInBufferSize(1024); // 指定接收緩沖區大小
m_Serial.SetInBufferCount(0); // 清空接收緩沖區
m_Serial.InputMode(1); // 設置數據獲取方式
m_Serial.SetInputLen(0); // 設置讀取方式
m_Opened=m_Serail.SetPortOpen(1); // 打開(kāi)指定的串口
return m_Opened;
}

  打開(kāi)所需串口后,需要考慮串口通信的時(shí)機。在接收或發(fā)送數據過(guò)程中,可能需要監視并響應一些事件和錯誤,所以事件驅動(dòng)是處理串行端口交互作用的一種非常有效的方法。使用 OnComm 事件和 CommEvent 屬性捕捉并檢查通訊事件和錯誤的值。發(fā)生通訊事件或錯誤時(shí),將觸發(fā) OnComm 事件,CommEvent 屬性的值將被改變,應用程序檢查 CommEvent 屬性值并作出相應的反應。在程序中用ClassWizard為CMSComm控件添加OnComm消息處理函數:

void CSampleDlg::OnComm()
{
......
switch(m_Serial.GetCommEvent())
{
case 2:
// 串行口數據接收,處理;
}
}


本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
CMScomm中的函數則么用?CMScomm的介紹太少
Windows平臺幾種串口編程方法 - hcorecore的日志 - 網(wǎng)易博客
VC++.NET和VC++6.0串行通信控件的使用區別(精華)
VC++中用通訊控件開(kāi)發(fā)串行通信程序
VB6.0環(huán)境下利用Mscomm控件實(shí)現串行通信
delphi SPCOMM的一些用法注意
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久