串口通信问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 01:52:02
HOST和设备之间的通信,HOST用WriteFile发送命令给设备,再用ReadFile读设备通过串口返回的数据。当主机请求通讯时,设备准备好通信的时候会发送XON给主机,没有准备好的时候会发送XOFF给主机。请问我如何接收到XON和XOFF的信号?
串口读写操作是没什么问题,但是我想得到的是:设备已经准备好通信返回的XON【0X11】或者设备正在忙暂时无法通信回复的XOFF[0X13],这两个值我不知道怎么读取?好像我查阅的资料。XON和XOFF是软件控制流的问题,搞不清楚,头大

//不懂的话再问我吧.
//我给你一个我自己以前写的串口操作的函数,包括两部份,一部分主CPP文件,一部分为(头)H文件.
//以下的代码在VC++6.0下测试通过.
//将下面的两部分代码分别保存在serialport.cpp文件和serialport.h文件中.
//最后面是一个简单的使用举例.
//===========================SerialPort.cpp的开始=========================
#include "SerialPort.h"

HANDLE OpenSerialPort(string & strPort,ULONG ulBaudrate)
{
HANDLE hSerial;
hSerial = CreateFile((strPort.c_str()),
GENERIC_READ|GENERIC_WRITE,
NULL,
NULL,
OPEN_EXISTING,
NULL,
NULL);

if(hSerial == INVALID_HANDLE_VALUE)//Open serial port failed.
{
return hSerial;
}
//Config serial port
DCB PortDCB;
PortDCB.DCBlength = sizeof(DCB);
// Get the default serial parameter.
GetCommState(hSerial, &PortDCB);
PortDCB.BaudRate = ulBaudrate; // baudrate
PortDCB.ByteSize = 8; // Number of bits/byte, 4-8
PortDCB.Parity = NOPARITY;
PortDCB.StopBits = ONESTOPBIT; <