⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 port.h

📁 《单片机c程序设计及应用实列》一书的源代
💻 H
字号:
// Port.h: interface for the CPort class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PORT_H__EA70F052_D6AE_11D3_841C_0000B4B5BC6E__INCLUDED_)
#define AFX_PORT_H__EA70F052_D6AE_11D3_841C_0000B4B5BC6E__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class CPort  
{
public:
	BOOL SetMark(BOOL bMark=TRUE);
	//返回端口状态,是否已经初始化
	BOOL Inited();
	
	//清缓存
	void ClearBuffer();
	
	//从端口读一个字符,如果没有则等到有为止
	BOOL WaitChar(unsigned char * pCharData);
	
	//从端口读nNumToRead个字符,存在以pDataAddr为首地址的缓存中
	//m_nWait表示输入缓存中如果没有足够的数据,等待时间的长度
	BOOL ReadData(LPVOID pDataAddr,DWORD nNumToRead,UINT m_nWait=500);
	
	//从端口读一个字符,cReadData接收字符,cParity接收第九位,nWait-如果缓冲中没有字符,等待时间的长度
	BOOL ReadChar(unsigned char *cReadData,UINT nWait=100);
	
	//往端口写字符,cWriteData为要写字符的指针
	BOOL WriteChar(unsigned char cWriteData);
	
	//往端口写字符串,nNumToWrite为要写字符串的长度,pDataAddr为字符串首地址
	BOOL WriteData(LPVOID pDataAddr,DWORD nNumToWrite);
	
	//初始化端口
	BOOL Init1(UINT portnr,DWORD dwCommEvents,UINT writebuffersize);
	BOOL InitPort(UINT portnr,DCB &dcb,DWORD dwCommEvents,UINT writterbuffersize);
	BOOL InitPort(UINT portnr,UINT baud,char parity,UINT databits,UINT stopbits,DWORD dwCommEvents,UINT writebuffersize);
	
	CPort();
	virtual ~CPort();

protected:
	//端口是否已经初始化了
	BOOL m_bInited;
	
	//同步变量
	OVERLAPPED          m_ov;
	
//	DCB					m_dcb;
	
	//端口句柄
	HANDLE              m_hComm;
	
	COMMTIMEOUTS		m_CommTimeouts;
	
	//端口号
	UINT				m_nPortNr;
	
	//写缓存
	char*				m_szWriteBuffer;
	
	DWORD				m_dwCommEvents;
	DWORD				m_nWriteBufferSize;
};

#endif // !defined(AFX_PORT_H__EA70F052_D6AE_11D3_841C_0000B4B5BC6E__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -