阅读:2777回复:24
现在加分了,200分相送!!!
我现在用的是ASSABET1110的开发板,操作系统是WINCE3。0,在CPU:SA1110上一个有5个串口,0作为USB口,1作为RS232口,2作为红外口,3是UART口,我现在就是想在WINCE下控制这个UART口,接一个GPS信号。我在CE下用CREATEFILE函数打开COM3,他打开的是红外口,因为CE将COM3虚拟成了IRCOMM口,请问我该怎样操作这个UART口?EMAIL:zhangbin7674@163.com
|
|
沙发#
发布于:2002-11-16 13:52
检查一下注册表的comm项
|
|
|
板凳#
发布于:2002-11-16 17:29
我就是看不出什么问题,在加上没有对WINCE注册表进行说明的资料,也不知道怎样该。你可以提一些建议吗?
|
|
地板#
发布于:2002-11-16 17:41
下面是在PB3。0中的PROJECT。REG文件的内容:
[HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial] \"DeviceArrayIndex\"=dword:0 \"Prefix\"=\"COM\" \"Dll\"=\"Serial.Dll\" \"Order\"=dword:0 [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial\\Unimodem] \"Tsp\"=\"Unimodem.dll\" \"DeviceType\"=dword:0 \"FriendlyName\"=LOC_FRIENDLY_SERIAL \"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 [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\IrCOMM] \"Dll\"=\"IRCOMM.DLL\" \"Prefix\"=\"COM\" \"Order\"=dword:1 \"Index\"=dword:3 [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\IrCOMM\\Unimodem] \"Tsp\"=\"Unimodem.dll\" \"DeviceType\"=dword:6 \"FriendlyName\"=LOC_FRIENDLY_IRCOMM \"DevConfig\"=hex: 10,00, 00,00, 02,00,00,00, 10,01,00,00, 00,4B,00,00, 00,00, 08, 00, 00, 00,00,00,00 PLATFORM。REG的内容: IF PLAT_NOSERIAL ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial] \"Dll\"=\"Serial.Dll\" \"IoBase\"=dword:a8010000 \"Irq\"=dword:15 \"Tsp\"=\"Unimodem.dll\" \"IoLen\"=dword:24 \"DeviceArrayIndex\"=dword:0 \"Prefix\"=\"COM\" \"Order\"=dword:0 \"DeviceType\"=dword:0 \"FriendlyName\"=\"Serial Cable on COM1:\" ; Eliminate flow control bit \"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 IF IMGNOCOM3 ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial3] \"Dll\"=\"Serial.Dll\" \"IoBase\"=dword:a8050000 \"Irq\"=dword:17 \"Tsp\"=\"Unimodem.dll\" \"IoLen\"=dword:24 \"DeviceArrayIndex\"=dword:2 \"Prefix\"=\"COM\" \"Index\"=dword:4 ; COM3 -> 9 Pin (UART3) on Neponset \"Order\"=dword:0 \"DeviceType\"=dword:0 \"FriendlyName\"=\"Serial Cable on COM4:\" \"DevConfig\"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00 ENDIF IF IMGNOCOM3 IF IMGNOIRDA ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\IrDA] \"Dll\"=\"Serial.Dll\" \"IoBase\"=dword:a8030000 \"Irq\"=dword:16 \"Tsp\"=\"Unimodem.dll\" \"IoLen\"=dword:24 \"DeviceArrayIndex\"=dword:4 \"Prefix\"=\"COM\" \"Order\"=dword:1 ;\"DeviceType\"=dword:6 \"DeviceType\"=dword:2 ; makes it think its a modem- no delta f()-behaviour \"Index\"=dword:4 \"FriendlyName\"=\"Native IR:\" \"DevConfig\"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00 ; NDIS protocol Tags Below [HKEY_LOCAL_MACHINE\\Comm\\IrDA\\Linkage] \"Bind\"=multi_sz:\"SAIrDA1\" [HKEY_LOCAL_MACHINE\\Comm\\IrDA] \"SlotTimeout\"=dword:48 [HKEY_LOCAL_MACHINE\\Comm\\SAIrDA] \"DisplayName\"=\"StrongArm IrDA Driver\" \"Group\"=\"NDIS\" \"ImagePath\"=\"irsir.dll\" [HKEY_LOCAL_MACHINE\\Comm\\SAIrDA\\Linkage] \"Route\"=multi_sz:\"SAIrDA1\" [HKEY_LOCAL_MACHINE\\Comm\\SAIrDA1\\Parms] \"BusNumber\"=dword:0 \"BusType\"=dword:0 \"Port\"=dword:4 ; RAW/Physical PORT ; 0 = Use external dongle, 1 = Use internal IR \"IntIR\"=dword:1 ; 0 = Internal transceiver, 1 = Extended Systems JetEye dongle \"TransceiverType\"=dword:0 \"Baud\"=dword:3F ENDIF ENDIF ENDIF 无论我怎样修改,就是在注册表的ACTIVE键中看不见有与SERIAL3对应的内容?能帮我看看吗?或给我一些CE注册表的说明资料,谢谢!!! |
|
地下室#
发布于:2002-11-19 11:14
在Platform builder的帮助文件里有相关的资料。
|
|
5楼#
发布于:2002-11-19 11:35
说的很简单,在文件中的很多内容都没有进行说明。如DevConfig项等!
|
|
6楼#
发布于:2002-11-21 09:03
IF IMGNOCOM3 IF IMGNOIRDA ! //IF IMGNOCOM3 ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\Serial3] \"Dll\"=\"Serial.Dll\" \"IoBase\"=dword:a8050000 \"Irq\"=dword:17 \"Tsp\"=\"Unimodem.dll\" \"IoLen\"=dword:24 \"DeviceArrayIndex\"=dword:2 \"Prefix\"=\"COM\" \"Index\"=dword:4 ; COM3 -> 9 Pin (UART3) on Neponset \"Order\"=dword:0 \"DeviceType\"=dword:0 \"FriendlyName\"=\"Serial Cable on COM4:\" \"DevConfig\"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00 ENDIF IF IMGNOCOM3 ! //IF IMGNOCOM3 //IF IMGNOIRDA ! [HKEY_LOCAL_MACHINE\\Drivers\\BuiltIn\\IrDA] \"Dll\"=\"Serial.Dll\" \"IoBase\"=dword:a8030000 \"Irq\"=dword:16 \"Tsp\"=\"Unimodem.dll\" \"IoLen\"=dword:24 \"DeviceArrayIndex\"=dword:4 \"Prefix\"=\"COM\" \"Order\"=dword:1 ;\"DeviceType\"=dword:6 \"DeviceType\"=dword:2 ; makes it think its a modem- no delta f()-behaviour \"Index\"=dword:4 \"FriendlyName\"=\"Native IR:\" \"DevConfig\"=hex: 10,00,00,00,05,00,00,00,00,01,00,00,00,4B,00,00,00,00,08,00,00,00,00,00,00 你把此两处的条件换一下。好象它们只能有一个active. |
|
|
7楼#
发布于:2002-11-21 16:52
还有为什么这两个口只能选择其中一个,而不能同时使用呢?偏偏我就是要同时使用?应该怎么办?望指教!!!
|
|
8楼#
发布于:2002-11-21 17:04
不是不能同时ACTIVE,只是你把它装到一个口上的原因。
你可以把它装在另外一个口上。或者在程序中动态改变。 我等着你的200分喔,HEHEHE :) :) |
|
|
9楼#
发布于:2002-11-21 18:00
没有呀。一个的基地址是A8030000,一个是A8050000,中断我也改成一个16,一个17,按CPU手册上的来设置的。但是还是不能同时使用。你能帮我一下吗?万分感激!!!!
|
|
10楼#
发布于:2002-11-22 09:03
但这两个仍然一样!
\"Prefix\"=\"COM\" \"Index\"=dword:4 同时你应该去掉前面的 IF IMGNOCOM3 IF IMGNOIRDA ! 和 IF IMGNOCOM3 ! 即不要条件。 你需要仔细读以下 |
|
|
11楼#
发布于:2002-11-22 16:51
我现在的\"Index\"一个为4,一个为5,应该可以了吧!但是还是不行同时,条件我也试过都去掉,也还是不行。单独使用SERIAL3,即COM5:只能发,不能收!也不清楚是为什么!望指点!!!
|
|
12楼#
发布于:2002-11-22 17:11
我现在的\"Index\"一个为4,一个为5,应该可以了吧!但是还是不行同时,条件我也试过都去掉,也还是不行。单独使用SERIAL3,即COM5:只能发,不能收!也不清楚是为什么!望指点!!! 老兄 index 5已超出了5个口。你只有替换前面的某个了。 你也可以用条件替换0~3的某个口呀!! |
|
|
13楼#
发布于:2002-11-23 10:28
只要不冲突,这个索引不可以从0-9任意指定吗?但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?如果去掉IMGNOIRDA,就看不见IRDA了!
|
|
14楼#
发布于:2002-11-23 16:53
UART3的设备名我已经改成了COM0,红外还是使用COM4,但是两者还是不能同时使用!
|
|
15楼#
发布于:2002-11-25 09:00
只要不冲突,这个索引不可以从0-9任意指定吗?但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?如果去掉IMGNOIRDA,就看不见IRDA了! 这两个条件: IF IMGNOCOM3 ! ////////////// IF IMGNOCOM3 IF IMGNOIRDA ! 改为: IF IMGNOCOM3 ! ////////////// IF IMGNOIRDA ! 即把IF IMGNOCOM3去掉行不行? |
|
|
16楼#
发布于:2002-11-25 21:18
高呀
|
|
|
17楼#
发布于:2002-11-26 08:21
我现在前后都不要IMGNOCOM3这个环境变量了,即强制使IRDA和COM3都注册了。但是还是不能使两者同时使用。谁先打开,谁就能使用。但是COM3只能发送,不能接收。我就不明白了。望指点一下。
但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?并且他们的中断号都是一样的,只是基地址不同?而手册上明明是一个16,一个17的。 |
|
18楼#
发布于:2002-11-26 09:14
我现在前后都不要IMGNOCOM3这个环境变量了,即强制使IRDA和COM3都注册了。但是还是不能使两者同时使用。谁先打开,谁就能使用。但是COM3只能发送,不能接收。我就不明白了。望指点一下。 这个问题比较深沉,我对你的东西也不是全面熟悉。 我怀疑是:DevConfig 10,00,00,00,05 ..... 你把一个的05改成其它试一下。最好分析一下他的规律。 |
|
|
19楼#
发布于:2002-11-26 16:44
就是找不到相关的说明。自己摸索一点都看不明白!
|
|
上一页
下一页