win ce 4.2串口开发的问题?
代码如下:
hSerial = CreateFile(L"COM1:",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if(m_hSerial == NULL)
{
///L"串口打开失败";
return;
}
//指定端口监测的事件集
SetCommMask (hSerial , EV_RXCHAR);
//分配设备缓冲区
SetupComm(hSerial ,512,512);
//初始化缓冲区中的信息
PurgeComm(hSerial ,PURGE_TXCLEAR|PURGE_RXCLEAR);
///配置串口
DCB PortDCB;
PortDCB.DCBlength = sizeof(DCB);
// 默认串口参数
//得到端口的默认设置信息
GetCommState (hPort, &PortDCB);
//改变DCB结构设置
PortDCB.BaudRate = 19200; //波特率
PortDCB.fBinary = TRUE; //Win32不支持非二进制串行传输模式,必须为TRUE
PortDCB.fParity = TRUE; //启用奇偶校验
PortDCB.fOutxCtsFlow = TRUE; //串行端口的输出由CTS线控制
PortDCB.fOutxDsrFlow = FALSE; //关闭串行端口的DSR流控制
PortDCB.fDtrControl = DTR_CONTROL_ENABLE; //启用DTR线
PortDCB.fDsrSensitivity = FALSE; //如果设为TRUE将忽略任何输入的字节,除非DSR线被启用
//PortDCB.fTXContinueOnXoff = TRUE; //当为TRUE时,如果接收缓冲区已满且驱动程序已传送XOFF字符,将使驱动程序停止传输字符
PortDCB.fTXContinueOnXoff = FALSE;
PortDCB.fOutX = FALSE; //设为TRUE指定XON/XOFF控制被用于控制串行输出
PortDCB.fInX = FALSE; //设为TRUE指定XON/XOFF控制被用于控制串行输入
PortDCB.fErrorChar = FALSE; //WINCE串行驱动程序的默认执行将忽略这个字段
PortDCB.fNull = FALSE; //设为TRUE将使串行驱动程序忽略收到的空字节
PortDCB.fRtsControl = RTS_CONTROL_ENABLE; //启用RTS线
PortDCB.fAbortOnError = FALSE; //WINCE串行驱动程序的默认执行将忽略这个字段
PortDCB.ByteSize = 8; //每字节的位数
PortDCB.Parity = NOPARITY; //无奇偶校验
PortDCB.StopBits = ONESTOPBIT; //每字节一位停止位
if (!SetCommState (hPort, &PortDCB))
{
//不能配置串行端口
MessageBox (NULL, TEXT("Unable to configure the serial port"),TEXT("Error"), MB_OK);
dwError = GetLastError ();
return FALSE;
}
return TRUE;
每次执行到这里就不行了, dwError返回值为6,6的意思好象是无效的句柄,
不能配置串行端口。请各位高手指教!
hSerial = CreateFile(L"COM1:",
GENERIC_READ | GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
0,
NULL);
if(m_hSerial == NULL)
{
///L"串口打开失败";
return;
}
//指定端口监测的事件集
SetCommMask (hSerial , EV_RXCHAR);
//分配设备缓冲区
SetupComm(hSerial ,512,512);
//初始化缓冲区中的信息
PurgeComm(hSerial ,PURGE_TXCLEAR|PURGE_RXCLEAR);
///配置串口
DCB PortDCB;
PortDCB.DCBlength = sizeof(DCB);
// 默认串口参数
//得到端口的默认设置信息
GetCommState (hPort, &PortDCB);
//改变DCB结构设置
PortDCB.BaudRate = 19200; //波特率
PortDCB.fBinary = TRUE; //Win32不支持非二进制串行传输模式,必须为TRUE
PortDCB.fParity = TRUE; //启用奇偶校验
PortDCB.fOutxCtsFlow = TRUE; //串行端口的输出由CTS线控制
PortDCB.fOutxDsrFlow = FALSE; //关闭串行端口的DSR流控制
PortDCB.fDtrControl = DTR_CONTROL_ENABLE; //启用DTR线
PortDCB.fDsrSensitivity = FALSE; //如果设为TRUE将忽略任何输入的字节,除非DSR线被启用
//PortDCB.fTXContinueOnXoff = TRUE; //当为TRUE时,如果接收缓冲区已满且驱动程序已传送XOFF字符,将使驱动程序停止传输字符
PortDCB.fTXContinueOnXoff = FALSE;
PortDCB.fOutX = FALSE; //设为TRUE指定XON/XOFF控制被用于控制串行输出
PortDCB.fInX = FALSE; //设为TRUE指定XON/XOFF控制被用于控制串行输入
PortDCB.fErrorChar = FALSE; //WINCE串行驱动程序的默认执行将忽略这个字段
PortDCB.fNull = FALSE; //设为TRUE将使串行驱动程序忽略收到的空字节
PortDCB.fRtsControl = RTS_CONTROL_ENABLE; //启用RTS线
PortDCB.fAbortOnError = FALSE; //WINCE串行驱动程序的默认执行将忽略这个字段
PortDCB.ByteSize = 8; //每字节的位数
PortDCB.Parity = NOPARITY; //无奇偶校验
PortDCB.StopBits = ONESTOPBIT; //每字节一位停止位
if (!SetCommState (hPort, &PortDCB))
{
//不能配置串行端口
MessageBox (NULL, TEXT("Unable to configure the serial port"),TEXT("Error"), MB_OK);
dwError = GetLastError ();
return FALSE;
}
return TRUE;
每次执行到这里就不行了, dwError返回值为6,6的意思好象是无效的句柄,
不能配置串行端口。请各位高手指教!
...全文
相关推荐
Win CE车载导航进入CE界面
车载导航通常集成了GPS定位、地图显示、路线规划等多种功能,而Win CE作为其底层操作系统,提供了稳定的运行环境和丰富的开发接口。
Win CE远程桌面工具2.01
综上所述,Win CE远程桌面工具2.01是一个高效且实用的工具,为Windows CE设备的远程管理提供了强大的支持。无论是开发者调试应用,还是系统管理员进行设备维护,都能从中受益。
win ce的串口程序
CE串口程序的部分代码进行了详细的解析,旨在帮助开发者更好地理解如何在Win CE环境下进行串口程序的开发。
DeviceApplication4.rar_CE_win ce_串口_串口数据 C
通过这个示例,开发者可以学习如何在Win CE环境下实现串口通信,这对于开发嵌入式系统、设备驱动或者物联网应用都是非常有价值的。
Win CE工具软件
4. **开发工具**:针对Win CE的编程和调试工具,比如Visual Studio的嵌入式版本,或者专用的Win CE SDK,用于开发和优化应用程序。5.


