社区
网络编程
帖子详情
请教一个串口问题!比较奇怪。
yushulei
2005-03-23 03:51:18
我写了一个串口测试程序,本来一直没什么问题得,可今天在测试通道得时候,
居然发现只要串口名称大于9也就是COM10及其以上得都说打开失败。很郁闷,不知道是为什么!
用超级终端打开是没问题得!还请高手指教!
另外想问一下:怎么枚举出一台机子得所有串口啊?谢谢
...全文
145
7
打赏
收藏
请教一个串口问题!比较奇怪。
我写了一个串口测试程序,本来一直没什么问题得,可今天在测试通道得时候, 居然发现只要串口名称大于9也就是COM10及其以上得都说打开失败。很郁闷,不知道是为什么! 用超级终端打开是没问题得!还请高手指教! 另外想问一下:怎么枚举出一台机子得所有串口啊?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
legendhui
2005-04-22
打赏
举报
回复
我使用了一个CSerialPort 的串口类,并未见到有何异常
void CLSComm::Initialize(UINT uBaud, char chParity, UINT uDataBits, float fStopBits)
{
m_uBaudRate = uBaud;
m_chParity = chParity;
m_uDataBits = uDataBits;
if (fStopBits == 1.5) // 1.5 个停止位
m_uStopBits = 2;
else if(fStopBits > 1.5) // 2 个停止位
m_uStopBits = 3;
else
m_uStopBits = 1; // 1 个停止位
}
BOOL CLSComm::OpenDevice(UINT uPort, HWND hMsgTarget)
{
BOOL bResult = FALSE;
TCHAR szPort[MAX_PATH];
TCHAR szBaud[MAX_PATH];
m_uCommPort = uPort;
m_hTargetWindow = hMsgTarget;
CloseDevice();
m_hWriteEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // 发送数据事件
m_hShutdownEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // 关闭线程的事件
m_ovComm.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL); // 读取数据事件
m_hEventArray[USER_EVENT_QUIT] = m_hShutdownEvent;
m_hEventArray[USER_EVENT_RECEIVE] = m_ovComm.hEvent;
m_hEventArray[USER_EVENT_SEND] = m_hWriteEvent;
wsprintf(szPort, _T("\\\\.\\COM%d"), m_uCommPort);
wsprintf(szBaud, _T("baud=%d parity=%c data=%d stop=%d"), m_uBaudRate, m_chParity, m_uDataBits, m_uStopBits);
InitializeCriticalSection(&m_csCritical);
EnterCriticalSection(&m_csCritical);
// 打开串口设备
m_hDevice = CreateFile(szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_FLAG_OVERLAPPED, 0);
if (m_hDevice == INVALID_HANDLE_VALUE)
{
m_hDevice = NULL;
return FALSE;
}
if (SetCommTimeouts(m_hDevice, &m_timeoutComm))
{
if (SetCommMask(m_hDevice, EV_RXCHAR | EV_TXEMPTY | EV_CTS))
{
if (GetCommState(m_hDevice, &m_dcbComm))
{
m_dcbComm.fRtsControl = RTS_CONTROL_ENABLE;
//m_dcbComm.fRtsControl = RTS_CONTROL_DISABLE;
//m_dcbComm.fDtrControl = DTR_CONTROL_ENABLE;
if (BuildCommDCB(szBaud, &m_dcbComm))
{
if (SetCommState(m_hDevice, &m_dcbComm))
{
PurgeComm(m_hDevice, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT);
m_hCommThread = CreateThread(NULL, 0, _CommThread, this, 0, &m_dwCommThreadID);
bResult = (m_hCommThread != NULL) ? TRUE : FALSE;
}
}
}
}
}
LeaveCriticalSection(&m_csCritical);
if (!bResult)
CloseDevice();
else
m_bThreadAlive = TRUE;
return bResult;
}
mybios
2005-03-23
打赏
举报
回复
hushuangyan74说的是对的。
legendhui
2005-03-23
打赏
举报
回复
xx
是否与串口的输入输出范围有关03F8-03FF
hushuangyan74
2005-03-23
打赏
举报
回复
不知道楼主的问题解决了没有。如果没有可以看看我的建议,应该不会白看的。。。
楼主如果用MSCOMM32.ocx控件的话,就不会有这个问题了。
如果用CreateFile(。。。)来打开串口的话,其中参数lpszPortNum指的就是串口名,如
"COM1","COM2",。。。,"COM9"。
为什么只到"COM9",因为从"COM10"以后名字不一样了。
如串口10,对应的参数为"\\\\.\\COM10",
至于串口11以后的,我就不说了,楼主应该能想到了。。。。
至于要枚举出一台机子得所有串口,楼上回答过这个问题,我不说了。。。
yushulei
2005-03-23
打赏
举报
回复
我打开串口得方法是:
CreateFile(lpszPortNum,
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,
NULL))==(HANDLE)-1)
请各位帮忙啊
yushulei
2005-03-23
打赏
举报
回复
谢了,第一个问题还请大家指教!急啊!
oyljerry
2005-03-23
打赏
举报
回复
查看注册表可以获得机器上多有串口
linux系统定时器中断优先级,
请教
定时器中断与
串口
中断优先级配置
问题
各位大神,最近做项目遇到一
问题
,如下:功能要求:
串口
要接收大量数据,用于绘图;使用
串口
屏绘图,每5ms刷新一次。实现过程:使用TIM3,每5ms取一次数据,并发送一次绘图命令,优先级设置为抢占3,组内2;使能
串口
...
日常入坑之STM32
串口
空闲中断
问题
在使用小熊派开发板STM32L4单片机开发蓝牙驱动时遇到的了
一个
非常非常
奇怪
的
问题
,当然也怪学术不精,具体
问题
描述如下:使用STM32L4单片机,蓝牙为
串口
驱动,选择单片机的
串口
3,为啥选择这个呢,这得问问我那脾气...
java rs232_Java
串口
通讯 RS232(基础、范例、提高).doc
如果用applet应用程序的话,下面这个函数是可以取到
串口
的,但是如果通过web应用程序(或者通过jsp调用)却取不到
串口
,而且也不会抛出异常,感觉很
奇怪
,特来
请教
! ? ? CommPortIdentifier.getPortIdentifiers();...
stm32usb做虚拟
串口
和键盘_在MINI STM32 板子上实现USB虚拟
串口
回复: 101在MINI STM32 板子上实现USB虚拟
串口
电梯直达发表于 2011-6-27 06:51:45|只看该作者|倒序浏览|阅读模式(原文件名:A6.jpg)实验内容:通过STM32的USB端口在PC上虚拟
一个
COM口,当虚拟成功后,可通过
串口
调试...
请教
littlefs关于发生“错误”(不是数据错是空间满),关于写入不正常的
问题
发现当用lfs_file_write()写入直到提示空间不足,就会发生几个
奇怪
问题
。 文件建立后,我做了两个测试 1、不停写入直至空间满然后重新上电读出 调用lfs_file_write()不停写,直到此函数返回“错误”,实质上是空间...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章