c#中如何自动匹配com口?

时间:2022-08-30 23:19:36
问题是这样的,我有一个模块,在使用时事先对com口进行初始化,模块可以正常使用。但我希望这个模块以及上位机在别人的电脑上用,可以不规定死是使用哪个com口,而是我插哪个口,系统自动匹配赋值给sp.Portname。请问各位大大,有这样的语句可以实现吗?

6 个解决方案

#1


不可能.谁知道你插哪个口啊.人都判断不出来的东西,你让机器去判断?
顶多做成界面上可以配置的,并写到配置文件里.

#2


如果你的串口设备是有驱动的话,那么可以查询操作系统里的设备列表来解决这个问题。
如果没有驱动,还还是不要妄想了。

解决办法,就是自己轮询串口,能打开,并且发送命令有反应的话,就算是吧。

#3


引用 2 楼 mjp1234airen4385 的回复:
如果你的串口设备是有驱动的话,那么可以查询操作系统里的设备列表来解决这个问题。
如果没有驱动,还还是不要妄想了。

解决办法,就是自己轮询串口,能打开,并且发送命令有反应的话,就算是吧。

如果一台机器只能接一个设备的话,这样轮询也是可以实现的,就是初始化的时候可能会比较慢.
尤其是串口不是用的串口卡,而是用USB虚拟出来的串口,可以手动修改端口号的那种,如果我设置USB串口号为COM22,你要遍历到第22次才能正确识别出设备.
而如果连线有故障之类的情况发生,很可能程序轮询了一遍都找不到正确的COM口,你就只能重新轮询.
参考串口调试助手之类的软件,都是可以手动设置串口名称和波特率之类的,这样会更灵活

#4


http://blog.csdn.net/tongxuechen1982/article/details/2469261

#5


非常感谢回答

#6


对。。。那还是不做这种功能了。。。非常感谢

#1


不可能.谁知道你插哪个口啊.人都判断不出来的东西,你让机器去判断?
顶多做成界面上可以配置的,并写到配置文件里.

#2


如果你的串口设备是有驱动的话,那么可以查询操作系统里的设备列表来解决这个问题。
如果没有驱动,还还是不要妄想了。

解决办法,就是自己轮询串口,能打开,并且发送命令有反应的话,就算是吧。

#3


引用 2 楼 mjp1234airen4385 的回复:
如果你的串口设备是有驱动的话,那么可以查询操作系统里的设备列表来解决这个问题。
如果没有驱动,还还是不要妄想了。

解决办法,就是自己轮询串口,能打开,并且发送命令有反应的话,就算是吧。

如果一台机器只能接一个设备的话,这样轮询也是可以实现的,就是初始化的时候可能会比较慢.
尤其是串口不是用的串口卡,而是用USB虚拟出来的串口,可以手动修改端口号的那种,如果我设置USB串口号为COM22,你要遍历到第22次才能正确识别出设备.
而如果连线有故障之类的情况发生,很可能程序轮询了一遍都找不到正确的COM口,你就只能重新轮询.
参考串口调试助手之类的软件,都是可以手动设置串口名称和波特率之类的,这样会更灵活

#4


http://blog.csdn.net/tongxuechen1982/article/details/2469261

#5


非常感谢回答

#6


对。。。那还是不做这种功能了。。。非常感谢