xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

資源簡(jiǎn)介

利用API函數(shù)實(shí)現(xiàn)了串口通信功能,發(fā)送和接收可選擇字符格式,含有周期性發(fā)送功能,有興趣可以幫忙優(yōu)化一下

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“SerialComm.h“


CSerialComm::CSerialComm(void)
{
m_recvData?=?““;
m_bConnected?=?FALSE;
m_pThread?=?NULL;
}

CSerialComm::~CSerialComm(void)
{
if(m_bConnected)?????????????//程序結(jié)束時(shí)刪除線程、關(guān)閉串口操作
closeConnection();

if(m_hPostMsgEvent)?????????//刪除事件句柄
CloseHandle(m_hPostMsgEvent);

if(m_osRead.hEvent)
CloseHandle(m_osRead.hEvent);

if(m_osWrite.hEvent)
CloseHandle(m_osWrite.hEvent);
}

BOOL?CSerialComm::openConnection(CString?commno?UINT8?baud?UINT8?datalen?UINT8?stopbit?UINT8?parity)
{
if((baud?>?COMM_BAUD_115200)?||?
???(datalen?>?COMM_DATA_LEN_8)?||?
???(stopbit?>?COMM_STOP_BIT_2)?||?
???(parity?>?COMM_SPACE_PARITY))
{
m_bConnected?=?FALSE;
AfxMessageBox(_T(“串口參數(shù)設(shè)置錯(cuò)誤“));

return?FALSE;
}

m_hPostMsgEvent?=?CreateEvent(NULL?TRUE?TRUE?NULL);
if(m_hPostMsgEvent?==?NULL)
return?FALSE;

memset(&m_osRead?0?sizeof(OVERLAPPED));
memset(&m_osWrite?0?sizeof(OVERLAPPED));

m_osRead.hEvent?=?CreateEvent(NULL?TRUE?FALSE?NULL);??//為重疊讀創(chuàng)建事件對(duì)象,手工重置,初始化為無(wú)信號(hào)
if(m_osRead.hEvent?==?NULL)
return?FALSE;

m_osWrite.hEvent?=?CreateEvent(NULL?TRUE?FALSE?NULL);?//為重疊寫(xiě)創(chuàng)建事件對(duì)象,手工重置,初始化為無(wú)信號(hào)
if(m_osWrite.hEvent?==?NULL)
return?FALSE;

m_hComm?=?CreateFile(commno?????????????????????????????//打開(kāi)串口
?????????????????GENERIC_READ?|?GENERIC_WRITE???????//允許對(duì)設(shè)備進(jìn)行讀寫(xiě)訪問(wèn)
?0??????????????????????????????????//獨(dú)占方式
?NULL???????????????????????????????//
?OPEN_EXISTING??????????????????????//打開(kāi)而不是創(chuàng)建
?FILE_FLAG_OVERLAPPED???????????????//使用異步通信
?NULL);
if(m_hComm?==?(HANDLE)-1)
{
m_bConnected?=?FALSE;
AfxMessageBox(_T(“打開(kāi)串口失敗“));

return?FALSE;
}?else
{
SetupComm(m_hComm?MAXBLOCK?MAXBLOCK);??????????????//輸入緩沖區(qū)和輸出緩沖區(qū)的大小都是1024
SetCommMask(m_hComm?EV_RXCHAR?|?EV_TXEMPTY?);???????//設(shè)置事件驅(qū)動(dòng)的類型

COMMTIMEOUTS?TimeOuts;
TimeOuts.ReadIntervalTimeout?=?MAXDWORD;?????????????//時(shí)間間隔設(shè)為最大,設(shè)為0會(huì)導(dǎo)致ReadFile立即返回并完成操作
TimeOuts.ReadTotalTimeoutMultiplier?=?0;
TimeOuts.ReadTotalTimeoutConstant?=?0;

TimeOuts.WriteTotalTimeoutMultiplier?=?50;???????????//設(shè)置寫(xiě)超時(shí)用于GetOverlapperResult函數(shù)的等待時(shí)間
TimeOuts.WriteTotalTimeoutConstant?=?2000;
SetCommTimeouts(m_hComm?&TimeOuts);?????????????????//設(shè)置超時(shí)

//PurgeComm(m_hComm?PURGE_TXABORT?|?PURGE_RXABORT?|?PURGE_TXCLEAR?|?PURGE_RXCLEAR?);?//清干凈輸入、輸出緩沖區(qū)

if(!configureConnection(commno?baud?datalen?stopbit?parity))
{
CloseHandle(m_hComm);
return?FALSE;
}

return?TRUE;
}
}

BOOL?CSerialComm::configureConnection(CString?commno?UINT8?baud?UINT8?datalen?UINT8?stopbit?UINT8?parity)
{
DCB?dcb;
if(!GetCommState(m_hComm?&dcb))???????????//讀串口原來(lái)的參數(shù)設(shè)置
return?false;

switch(baud)???????????????????????????????//波特率
{
case?COMM_BAUD_2400:
dcb.BaudRate?=?2400;
break;
case?COMM_BAUD_4800:
dcb.BaudRate?=?4800;
break;
case?COMM_BAUD_9600:
dcb.BaudRate?=?9600;
break;
case?COMM_BAUD

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????文件???????3165??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\ReadMe.txt

?????文件??????67777??2009-08-31?02:31??API_SerialComm\YDVS_SerialComm\res\icon1.ico

?????文件??????67777??2009-08-31?02:31??API_SerialComm\YDVS_SerialComm\res\YDVS_SerialComm.ico

?????文件????????686??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\res\YDVS_SerialComm.rc2

?????文件???????3306??2013-12-24?12:01??API_SerialComm\YDVS_SerialComm\resource.h

?????文件???????8224??2013-12-20?17:50??API_SerialComm\YDVS_SerialComm\SerialComm.cpp

?????文件???????1671??2013-12-20?17:48??API_SerialComm\YDVS_SerialComm\SerialComm.h

?????文件????????148??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\stdafx.cpp

?????文件???????1636??2013-12-11?19:20??API_SerialComm\YDVS_SerialComm\stdafx.h

?????文件????????234??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\targetver.h

?????文件??????41056??2013-12-24?12:01??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.aps

?????文件???????2110??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.cpp

?????文件????????496??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.h

?????文件???????1481??2013-12-20?13:50??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.idc

?????文件??????15336??2013-12-24?12:01??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.rc

?????文件???????6119??2013-12-24?12:01??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.vcxproj

?????文件???????2316??2013-12-24?12:01??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.vcxproj.filters

?????文件????????143??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm\YDVS_SerialComm.vcxproj.user

?????文件??????12834??2014-01-19?16:18??API_SerialComm\YDVS_SerialComm\YDVS_SerialCommDlg.cpp

?????文件???????1754??2013-12-24?11:31??API_SerialComm\YDVS_SerialComm\YDVS_SerialCommDlg.h

?????文件???58544128??2014-01-19?16:20??API_SerialComm\YDVS_SerialComm.sdf

?????文件????????912??2013-12-11?19:13??API_SerialComm\YDVS_SerialComm.sln

????..A..H.?????22528??2014-01-19?16:20??API_SerialComm\YDVS_SerialComm.suo

?????目錄??????????0??2014-01-19?16:16??API_SerialComm\ipch\ydvs_serialcomm-65adb533

?????目錄??????????0??2014-01-19?16:21??API_SerialComm\YDVS_SerialComm\Debug

?????目錄??????????0??2014-01-19?16:15??API_SerialComm\YDVS_SerialComm\res

?????目錄??????????0??2014-01-19?16:20??API_SerialComm\Debug

?????目錄??????????0??2014-01-19?16:16??API_SerialComm\ipch

?????目錄??????????0??2014-01-19?16:15??API_SerialComm\YDVS_SerialComm

?????目錄??????????0??2014-01-19?16:20??API_SerialComm

............此處省略3個(gè)文件信息

評(píng)論

共有 條評(píng)論