WEB开发网
开发学院软件开发VC Win32串口编程 阅读

Win32串口编程

 2007-03-17 22:00:53 来源:WEB开发网   
核心提示: BOOL ReadFile(HANDLE hFile,//串口的句柄// 读入的数据存储的地址,// 即读入的数据将存储在以该指针的值为首地址的一片内存区LPVOID lpBuffer,DWORD nNumberOfBytesToRead,// 要读入的数据的字节数// 指向一个DWORD
BOOL ReadFile(
  HANDLE hFile,  //串口的句柄
  
  // 读入的数据存储的地址,
  // 即读入的数据将存储在以该指针的值为首地址的一片内存区
  LPVOID lpBuffer,  
  DWORD nNumberOfBytesToRead,  // 要读入的数据的字节数
  
  // 指向一个DWORD数值,该数值返回读操作实际读入的字节数
  LPDWORD lpNumberOfBytesRead,  
  
  // 重叠操作时,该参数指向一个OVERLAPPED结构,同步操作时,该参数为NULL。
  LPOVERLAPPED lpOverlapped   
  );  
BOOL WriteFile(
  HANDLE hFile,  //串口的句柄
  
  // 写入的数据存储的地址,
  // 即以该指针的值为首地址的nNumberOfBytesToWrite
  // 个字节的数据将要写入串口的发送数据缓冲区。
  LPCVOID lpBuffer,  
  
  DWORD nNumberOfBytesToWrite,  //要写入的数据的字节数
  
  // 指向指向一个DWORD数值,该数值返回实际写入的字节数
  LPDWORD lpNumberOfBytesWritten,  
  
  // 重叠操作时,该参数指向一个OVERLAPPED结构,
  // 同步操作时,该参数为NULL。
  LPOVERLAPPED lpOverlapped   
  );
  在用ReadFile和WriteFile读写串口时,既可以同步执行,也可以重叠执行。在同步执行时,函数直到操作完成后才返回。这意味着同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,这两个函数也会立即返回,费时的I/O操作在后台进行。

ReadFile和WriteFile函数是同步还是异步由CreateFile函数决定,如果在调用CreateFile创建句柄时指定了FILE_FLAG_OVERLAPPED标志,那么调用ReadFile和WriteFile对该句柄进行的操作就应该是重叠的;如果未指定重叠标志,则读写操作应该是同步的。ReadFile和WriteFile函数的同步或者异步应该和CreateFile函数相一致。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:Win 串口 编程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接