zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2777回复:24

现在加分了,200分相送!!!

楼主#
更多 发布于:2002-11-15 21:28
我现在用的是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





 
yiduz
驱动小牛
驱动小牛
  • 注册日期2001-04-28
  • 最后登录2003-10-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-11-16 13:52
检查一下注册表的comm项
ydzhang
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-16 17:29
我就是看不出什么问题,在加上没有对WINCE注册表进行说明的资料,也不知道怎样该。你可以提一些建议吗?
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于: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注册表的说明资料,谢谢!!!
zhxue
驱动牛犊
驱动牛犊
  • 注册日期2001-05-02
  • 最后登录2010-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-19 11:14
在Platform builder的帮助文件里有相关的资料。
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-11-19 11:35
说的很简单,在文件中的很多内容都没有进行说明。如DevConfig项等!
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
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.
生命驱动,活力无限!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-11-21 16:52
还有为什么这两个口只能选择其中一个,而不能同时使用呢?偏偏我就是要同时使用?应该怎么办?望指教!!!
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-11-21 17:04
不是不能同时ACTIVE,只是你把它装到一个口上的原因。
你可以把它装在另外一个口上。或者在程序中动态改变。

我等着你的200分喔,HEHEHE :) :)
生命驱动,活力无限!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-11-21 18:00
没有呀。一个的基地址是A8030000,一个是A8050000,中断我也改成一个16,一个17,按CPU手册上的来设置的。但是还是不能同时使用。你能帮我一下吗?万分感激!!!!
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-11-22 09:03
但这两个仍然一样!
\"Prefix\"=\"COM\"
\"Index\"=dword:4  

同时你应该去掉前面的
IF IMGNOCOM3
IF IMGNOIRDA !

IF IMGNOCOM3 !
即不要条件。

你需要仔细读以下

生命驱动,活力无限!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2002-11-22 16:51
我现在的\"Index\"一个为4,一个为5,应该可以了吧!但是还是不行同时,条件我也试过都去掉,也还是不行。单独使用SERIAL3,即COM5:只能发,不能收!也不清楚是为什么!望指点!!!
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2002-11-22 17:11
我现在的\"Index\"一个为4,一个为5,应该可以了吧!但是还是不行同时,条件我也试过都去掉,也还是不行。单独使用SERIAL3,即COM5:只能发,不能收!也不清楚是为什么!望指点!!!


老兄 index 5已超出了5个口。你只有替换前面的某个了。

你也可以用条件替换0~3的某个口呀!!
生命驱动,活力无限!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2002-11-23 10:28
只要不冲突,这个索引不可以从0-9任意指定吗?但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?如果去掉IMGNOIRDA,就看不见IRDA了!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2002-11-23 16:53
UART3的设备名我已经改成了COM0,红外还是使用COM4,但是两者还是不能同时使用!
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2002-11-25 09:00
只要不冲突,这个索引不可以从0-9任意指定吗?但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?如果去掉IMGNOIRDA,就看不见IRDA了!

这两个条件:
IF IMGNOCOM3 !
//////////////

IF IMGNOCOM3
IF IMGNOIRDA !
改为:

IF IMGNOCOM3 !
//////////////
IF IMGNOIRDA !

即把IF IMGNOCOM3去掉行不行?

生命驱动,活力无限!
blue123
驱动中牛
驱动中牛
  • 注册日期2002-11-09
  • 最后登录2009-09-14
  • 粉丝0
  • 关注0
  • 积分91分
  • 威望11点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2002-11-25 21:18
高呀
努力!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2002-11-26 08:21
我现在前后都不要IMGNOCOM3这个环境变量了,即强制使IRDA和COM3都注册了。但是还是不能使两者同时使用。谁先打开,谁就能使用。但是COM3只能发送,不能接收。我就不明白了。望指点一下。
但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?并且他们的中断号都是一样的,只是基地址不同?而手册上明明是一个16,一个17的。
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2002-11-26 09:14
我现在前后都不要IMGNOCOM3这个环境变量了,即强制使IRDA和COM3都注册了。但是还是不能使两者同时使用。谁先打开,谁就能使用。但是COM3只能发送,不能接收。我就不明白了。望指点一下。
但是还有一点,我就是不明白在那个注册表文件中,为什么设置来两者只能选其一?并且他们的中断号都是一样的,只是基地址不同?而手册上明明是一个16,一个17的。


这个问题比较深沉,我对你的东西也不是全面熟悉。
我怀疑是:DevConfig 10,00,00,00,05 .....
你把一个的05改成其它试一下。最好分析一下他的规律。
生命驱动,活力无限!
zhangbin
驱动牛犊
驱动牛犊
  • 注册日期2002-08-21
  • 最后登录2003-10-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2002-11-26 16:44
就是找不到相关的说明。自己摸索一点都看不明白!
上一页
游客

返回顶部