我做了一个USB设备,上位机驱动是USB转成串口,也就是说我上位机只要通过串口向下发数据,我的设备就可以收到。
插上设备以后,设备管理器中显示:STM Virtual COM Port(COM2)
由于该设备插到不同的USB口,会识别成不同的串口。
我想可不可以通过识别COM2前的字符串(STM ...)来识别我的串口号呢?
请问,怎样识别呢?
谢谢。

解决方案 »

  1.   

    通过SetupDi*系列函数在设备管理器的“端口(COM 和LPT)”分支下搜索所有串口设备列表,读取每个串口设备的名称,通过判断名称中是否包含字符串“STM”来决定是否为你想要的串口设备,最后解析出“COM”字符后的串口号。要用到的函数有
    SetupDiGetClassDevs
    SetupDiEnumDeviceInfo
    SetupDiGetDeviceRegistryProperty在MSDN中搜索“HOWTO: Enumerate Hardware Devices by Using SetupDi Calls”,有示例代码。