This function reads data from a file, starting at the position indicated by the file pointer. After the read operation has been completed, the file pointer is adjusted by the number of bytes actually read.
BOOL ReadFile(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPDWORD lpNumberOfBytesRead,
LPOVERLAPPED lpOverlapped
);
Parameters
hFile
[in] Handle to the file to be read. The file handle must have been created with GENERIC_READ access to the file. This parameter cannot be a socket handle.
lpBuffer
[out] Pointer to the buffer that receives the data read from the file.
nNumberOfBytesToRead
[in] Number of bytes to be read from the file.
lpNumberOfBytesRead
[out] Pointer to the number of bytes read. ReadFile sets this value to zero before taking action or checking errors.
lpOverlapped
[in] Unsupported; set to NULL.
Return Values
Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.
If the return value is nonzero and the number of bytes read is zero, the file pointer was beyond the current end of the file at the time of the read operation.
不知道提问什么,因为我自己也有很多模糊的地方,发帖只是为了留下自己学习的痕迹。
———————————————————————————————————————
This function waits for an event to occur for a specified communications device.
The set of events monitored by WaitCommEvent is contained in the event mask associated with the device handle.
BOOL WaitCommEvent(
HANDLE hFile,
LPDWORD lpEvtMask,
LPOVERLAPPED lpOverlapped
);
Parameters
hFile
[in] Handle to the communications device.
The CreateFile function returns this handle.
lpEvtMask
[out] Long pointer to a 32-bit variable that receives a mask indicating the events that occurred.
If an error occurs, the value is zero; otherwise, it is one or more of the following values.
Value Description
EV_BREAK A break was detected on input.
EV_CTS The CTS (clear-to-send) signal changed state.
EV_DSR The DSR (data-set-ready) signal changed state.
EV_ERR A line-status error occurred. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY.
EV_POWER Power event, which is generated whenever the device is powered on.
This value is specific to Windows CE.
EV_RING A ring indicator was detected.
EV_RLSD The RLSD (receive-line-signal-detect) signal changed state.
EV_RXCHAR A character was received and placed in the input buffer.
EV_RXFLAG The event character was received and placed in the input buffer.
The event character is specified in the device's DCB structure, which is applied to a serial port by using the SetCommState function.
EV_TXEMPTY The last character in the output buffer was sent.
lpOverlapped
[in] Ignored; set to NULL.
Return Values
Nonzero indicates success.
Zero indicates failure.
To obtain extended error information, call the GetLastError function.
Remarks
The WaitCommEvent function monitors a set of events for a specified communications resource. To set and query the current event mask of a communications resource, use the SetCommMask and GetCommMask functions. When a communications event that is set by SetCommMask occurs, WaitCommEvent returns.
Only one WaitCommEvent can be used for each open COM port handle. This means that if you have three threads in your application and each thread needs to wait on a specific comm event, each thread needs to open the COM port and then use the assigned port handle for their respective WaitCommEvent calls.
——
从上面看,WaitCommEvent 只有有一个字符接收到就会产生了。
在串口应用程序中,要怎么和ReadFile配合使用才能不导致读出的数据有误呢。
在一段串口程序有