VC实现串口通信例程-Read.doc
文本预览下载声明
VC实现串口通信例程
作者:阮帮秋(2001.4)
摘要:WIN95界面下的VC++串口通讯程序在WIN32下是不建议对端口进行操作的,在WIN32中所有的设备都被看成是文件,串行口也不例外也是作为文件来进行处理的。 关键词 串行口,DWORD,缓冲区
WIN95界面下的VC++串口通讯程序在WIN32下是不建议对端口进行操作的,在WIN32中所有的设备都被看成是文件,串行口也不例外也是作为文件来进行处理的。这是我的一份关于串口编程的读书笔记,对于使 用VC进行编程的同行应该有一定的帮助。
1.打开串口: 在Window 95下串行口作为文件处理,使用文件操作对串行口进行处理。使用CreateFile()打开串口,CreateFile()将返回串口的句柄。 HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesiredAccess, // access (read-write) mode DWORD dwShareMode, // share mode LPSECURITY_ATTRIBUTES lpSecurityAttributes, // pointer to security attributes DWORD dwCreationDistribution, // how to create DWORD dwFlagsAndAttributes, // file attributes HANDLE hTemplateFile // handle to file with attributes to copy ); lpFileName: 指明串口制备,例:COM1,COM2 dwDesiredAccess: 指明串口存取方式,例:GENERIC_READ|GENERIC_WRITE dwShareMode: 指明串口共享方式 lpSecurityAttributes: 指明串口的安全属性结构,NULL为缺省安全属性 dwCreateionDistribution: 必须为OPEN_EXISTIN dwFlagAndAttributes: 对串口唯一有意义的是FILE_FLAG_OVERLAPPED hTemplateFile: 必须为NULL2.关闭串口: CloseHandle(hCommDev);3.设置缓冲区长度: BOOL SetupComm( HANDLE hFile, // handle of communications device DWORD dwInQueue, // size of input buffer DWORD dwOutQueue // size of output buffer );4.COMMPROP结构: 可使用GetCommProperties()取得COMMPROP结构,COMMPROP结构中记载了系统支持的各项设置。 typedef struct _COMMPROP { // cmmp WORD wPacketLength; // packet size, in bytes WORD wPacketVersion; // packet version DWORD dwServiceMask; // services implemented DWORD dwReserved1; // reserved DWORD dwMaxTxQueue; // max Tx bufsize, in bytes DWORD dwMaxRxQueue; // max Rx bufsize, in bytes DWORD dwMaxBaud; // max baud rate, in bps DWORD dwProvSubType; // specific provider type DWORD dwProvCapabilities; // capabilities supported DWORD dwSettableParams; // changeable parameters DWORD dwSettableBaud; // allowable baud rates WORD wSettableData; // allowable byte sizes WORD wSettableStopParity; // stop bits/parity allowed DWORD dwCurrentTx
显示全部