请教关于串口控件——SPCOMM的简单问题(100分)

  • 主题发起人 主题发起人 叮叮当当
  • 开始时间 开始时间

叮叮当当

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用SPCOMM串口控件一直没有问题,最近单位买了一块8串口扩充卡,给一台工控机扩充了8个串口(原来COM1、COM2串口还是有的),这样就有COM1~COM10这些串口可以使用,可我发现在SPCOMM控件里无法使用COM10!
SPCOMM1.CommName := 'COM10';
SPCOMM1.StartComm;
运行时就报错了说是无效的端口。可是我试过COM1~COM9都是好用的。

另外一点我提醒大家注意的是DOS下是不允许“COM1”、“COM2”……“COM9”这样的文件名或目录的,但“COM10”就可以,是不是和这方面也有关?
 
我看像是硬件的检测不好..你手动指定一下看看行不行..这方面我不是太高..没有什么好建议..
 
是windows环境下硬件的问题,
 
各位大哥,不是硬件的问题啊!是不是串行口通讯设计里的什么技巧啊?:)
 
你用多串口卡自带的程序看看....一般来说大多是驱动的问题..
 
To: tseug
我用微软自带的MSCOMM控件可以正常读写COM10呀!
MSCOMM的串口号属性是Integer类型(CommPort),而SPCOMM是用字符串类型定义串口号属性的(CommName),是不是对于COM10不应该指定'COM10'啊?那应该设置CommName为什么才能打开COM10呢?
 
看看有没有COM10配置的说明
 
没试过这么多串口, 难道是COMA? 不会吧...COM9如何?
 
首先用“CreateFile”调通COM10,再用SPCOMM,
 
To: tseug
我几乎和你想的一样,结果是“COMA”当然不行。

To: watter
你说的很有道理,SPCOMM的源代码里也是调用CreateFile来打开串口的,可是我跟踪到出错语句也就是这一句啊,不知道Windows到底是用什么API打开串口10的。
 
你用的什么串口卡,MOXA和研华的都提供函数可以直接调用呀。
 
To: 我爱飞
是MOXA的,我知道MOXA有函数可以调用,但我以前一直是用MSCOMM进行编程的,现在想用SPCOMM了而已,用控件又有什么不可以呢?何况又不是他们产品不兼容Windows控件的问题。
 
我用过moxa的板子,两块,用spcomm控制com3-16,没问题,
我是在spcomm的属性页设置的串口名称,一直应用的很好
没碰到你说的问题
 
To: hanyu
太激动了,总算碰到一位使用过大于COM9的串口的兄弟!
请问你使用COM10~COM16时是如何写CommName属性的?
 
COM的文件名不是应该好像这个格式的吗?

//./COMx

不过你的这个问题确实非常有意思,可惜我手上没有类似的设备。
 
To: gztomash
请问 //./COMx 是从哪里看来的?
 
一、关于//./COMx的由来
其实我是从一个叫做TCiaComPort的控件看来了,并且一直沿用……
不过刚才可以查了一下MSDN,好像也没有特别要求,其实COMx格式应该
也是可以的。

二、关于Moxa卡
我以前也开发过基于MOXA卡的应用,只是时间久了,一下没想起来……
MOXA的串口号是可以调整的,不一定从COM3开始,你可以设定为
COM4..COM11,或者其他更大一点的序号,然后再试试看。

至于格式,我想,Windows会显示给你看的嘛!比如说:COM10, COM255...
 
谢谢 gztomash !今天下午我在单位试了一下,结果用“//./COM10”作为CommName终于打开COM10了!后来我干脆把SPCOMM控件改了一下,给他的CreateFile函数的调用参数加了个“//./”,以后用任何串口都应该没问题了。再次感谢 gztomash 的帮助![:)]
 
我现在也遇到了类似问题,也是Moxa的卡,上班后按照gztomash的办法实验一下.
 
另外,我搜索了一下相关的讨论,也有人提出使用如下的文件名://?/com10
请问这些关于串口的名字是怎么来的???
 
后退
顶部