外部串口B加载后,会造成ActiveSync软件无法连接的解决办法

时间:2023-01-11 17:49:31

  

//-------------------------------------------------------------------------------------------------

// 作者:wogoyixikexie@gliet

//论坛账号:gooogleman (经常在CSDN出没)

// 版权:桂林电子科技大学一系科协wogoyixikexie@gliet

// 平台:wince5.0 2440 5.0 BSP

// 发布日期:2009年8月15日 15:07:01

// 最后修改:

// 注意事项:未经作者同意,不得在转载的时候擅自修改、删除文章的任何部分

//-------------------------------------------------------------------------------------------------


      是这样的,我把外部串口B加载后,会造成ActiveSync软件无法连接,PC右下角会提示“无法识别设备”
  我把该串口的注册表去掉,马上又可以连接了,这个确实是这个串口引起的。
  我找不出原因,外部串口A的注册表却不会影响ActiveSync软件。
外部串口B注册表

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\UART4]
  "DeviceArrayIndex"=dword:4
  "Irq"=dword:27
  "IoBase"=dword:28000000
  "IoLen"=dword:8
  "Prefix"="COM"
  "Dll"="SER2440.Dll"
  "Order"=dword:0
  "Index"=dword:5
  "Priority"=dword:0
  "Port"="COM5:"
  "RegStride"=dword:1
  "DeviceType"=dword:0
  "FriendlyName"="Serial Cable on COM5:"
  "Tsp"="Unimodem.dll"
  "DevConfig"=hex: 10,00, 00,00, 05,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00
————————————————据以前的了解,这个ActiveSync相关的serialusbfn.dll和串口公用MDD。
它的注册表是
C:\WINCE500\PUBLIC\COMMON\OAK\FILES\common.reg(2474):
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
  "Dll"="serialusbfn.dll"
  "InterfaceSubClass"=dword:ff
  "InterfaceProtocol"=dword:ff
  "DeviceName"="USBFNS1:"
  "Tsp"="Unimodem.dll"
  "Prefix"="COM"
  "DeviceArrayIndex"=dword:0
  "DeviceType"=dword:0
  "IClass"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"
; idVendor must be changed. 045E belongs to Microsoft and is only to be used for
; prototype devices in your labs. Visit http://www.usb.org to obtain a vendor id.
  "idVendor"=dword:045E
  "Manufacturer"="Generic Manufacturer (PROTOTYPE--Remember to change idVendor)"
  "idProduct"=dword:00ce
  "Product"="Generic Serial (PROTOTYPE--Remember to change idVendor)"
  "bcdDevice"=dword:0

这两个注册表没有什么冲突啊。请问这是怎么回事呢?

 

引用 1 楼 chenyqzyf 的回复:
试着"Index"=dword:5  改成其他值比如8。

估计usb是虚拟成串口,而你的B 恰好占用了usb_ser的串口号5。



果然是这个"Index"=dword:5的问题。有时候这个世界很奇妙。
以前那个BSP用"Index"=dword:5没有事情,现在就有问题了,哈哈,无奈。

还好能用了。

 

======================哈哈,五个月之后,无意中找到了答案=============
这个明显是串口索引号和同步软件虚拟串口索引号冲突导致的。现在终于找到了
[HKEY_LOCAL_MACHINE\Drivers\USB\FunctionDrivers\Serial_Class]
  "FriendlyName"=LOC_USBFN_SERIAL_NAME
  "idVendor"=dword:0547
  "Manufacturer"=LOC_USBFN_SERIAL_MANUFACTURER
  "idProduct"=dword:2720
  "Product"=LOC_USBFN_SERIAL_PRODUCT
  "Index"=dword:5——It's here!把这个改动就可以了。嘿嘿。