|
串口通信WriteFile总是返回错误代码6?
[复制链接]
大家好!
本人初学者,碰到个问题,想向各位请教...
串口通信WriteFile总是返回错误代码6...
之前我已经在网上查了很多东西了.还是未能找到解决办法...
这个是我打开COM设备的代码..调试过了,绝对是成功打开了的..
m_hCom = CreateFile(_T("COM2:"), //Port,
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0); //打开串口
ASSERT(m_hCom != INVALID_HANDLE_VALUE);
if (m_hCom == INVALID_HANDLE_VALUE) //判断打开是否成功
{
COM_ErrorDisplay(_T("OpenPortFailed!"), 0);
return(FALSE);
}
然后我依次设置了
GetCommState(m_hCom, &m_ComDCB); //读取串口的参数信息
m_ComDCB.BaudRate = BaudRate; //修改波特率
m_ComDCB.ByteSize = DataBits; //数据位
m_ComDCB.StopBits = StopBits; //停止位
m_ComDCB.Parity = Parity; //奇偶校验
// m_ComDCB.fParity = FALSE; //禁止奇偶校验
m_ComDCB.fBinary = TRUE; //必须设置为TRUE,使能为二进制传输模式
对于DCB只设置了这些,其他的没管..
下面是修改时间参数
GetCommTimeouts(m_hCom, &m_ComTimeOuts); //获取串口时间参数信息
/* 修改时间参数 */
m_ComTimeOuts.ReadIntervalTimeout = 100; //
m_ComTimeOuts.ReadTotalTimeoutMultiplier = 1; //
m_ComTimeOuts.ReadTotalTimeoutConstant = 100; //
m_ComTimeOuts.WriteTotalTimeoutMultiplier = 0; //
m_ComTimeOuts.WriteTotalTimeoutConstant = 0; //
然后我调用
ret = WriteFile(m_hCom, _T("a"), 1, &dw_len, NULL); 写数据..
写完之后,我用一个MessageBox把发送了的数据个数和GetLastError显示出来..
总是显示 发送了1 GetLastError返回的是6 ..我知道这个错误代码说是无效的句柄..
但是我的句柄确确实实是有的哦..
到底哪里出问题了你?
请各位高手帮帮忙..
|
|