——————————————————————————————————————————————
前几天,专门抽时间看了一下串口驱动,发现好多使用C++来开发,结果就学习了两天C++语言。看来看
去,发现这个普通串口的驱动和红外串口的驱动几乎没有什么分别。后来想想,其实他们的驱动几乎都一样
也正常,因为这个红外串口终究还是串口,只是他要和一个微软的红外组件配合就形成了我们心中的特殊串口
后来,在立宇泰网站上找到了把红外串口变成普通串口的方法。
问:如何修改使UART2在WINCE5.0下可用?
答:修改两处:
1)HKEY_LOCAL_MACHINE/Comm/Irsir1/Parms]
"Port"=dword:4 ;设备编号
; 0 = Use external dongle, 1 = Use internal IR
"IntIR"=dword:0 ;原为1,修改为0
2)去掉SYSGEN_IRDA组件。位于Communication Services and Networking->Networking-Personal Area Network->IrDA。
3)重新Sysgen工程。
注意:UART2的设备名为COM4。
——————————————
果然可以啊。哈哈,按照立宇泰网站上找到了把红外串口变成普通串口的方法。成功了,我看串口驱动也看了几天了。除了MDD一个线程不理解,其他大的框架是没有什么问题,呵呵。如果增加外设应该也比较容易了,微软其实是填空式开发的。哈哈
明天试试就OK了。貌似2440 4.2BSP并不是这么做的,现在来看看4.2BSP的注册表是怎么回事。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/IRDA2440]
"DeviceArrayIndex"=dword:1
"Irq"=dword:09
"IoBase"=dword:50008000
"IoLen"=dword:2C
"Prefix"="COM3"
"Dll"="IRDA2440.Dll"
"Order"=dword:0
"Priority"=dword:0
"Port"="COM3:"
"DeviceType"=dword:0 ; IRDA modem, 0 -> null modem
"FriendlyName"="S2440 IRDA2440"
"Index"=dword:2
"IClass"="{A32942B7-920C-486b-B0E6-92A702A99B35}"
; Force IrCOMM & NDIS, which depend on serial, to loads load later.
; This is because serial depends on utldrv.
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/IrCOMM]
"Order"=dword:2
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/NDIS]
"Order"=dword:2
[HKEY_LOCAL_MACHINE/Comm/IrDA/Linkage]
"Bind"=multi_sz:"Irsir1"
[HKEY_LOCAL_MACHINE/Comm/Irsir]
"DisplayName"=LOC_FRIENDLYINFRARED
"Group"="NDIS"
"ImagePath"="irsir.dll"
[HKEY_LOCAL_MACHINE/Comm/Irsir/Linkage]
"Route"=multi_sz:"Irsir1"
————————————————————————————除了下面,还有很多不同。
[HKEY_LOCAL_MACHINE/Comm/Irsir1/Parms]
"BusNumber"=dword:0
"BusType"=dword:0
"Port"=dword:2
; 0 = Use external dongle, 1 = Use internal IR
"IntIR"=dword:1
; 0 = Internal transceiver, 1 = Extended Systems JetEye dongle
"TransceiverType"=dword:0
;Connectoids
[HKEY_LOCAL_MACHINE/Comm/DefaultConnections]
"USB CONNECT"=multi_sz:"USB CONNECT","19200"
;LOC_19200=multi_sz:"SER2440 UNIMODEM","19200"
;LOC_38400=multi_sz:"SER2440 UNIMODEM","38400"
;LOC_115200=multi_sz:"SER2440 UNIMODEM","115200"
;LOC_IR=multi_sz:LOC_FRIENDLYINFRARED,"115200"
;LOC_57600=multi_sz:"SER2440 UNIMODEM","57600"
——————————————————————————————————————