WINCE下如何虛擬多個串列埠

2021-09-30 06:23:58 字數 3297 閱讀 5607

應用背景

我們的產品是gps

產品,gps

模組是通過tx與

rx來和

cpu串列埠控制器的

uart2

連線的,對應於

com3(

這個可以根據自己的專案的需要來定),

platform.reg

中登錄檔資訊如下:

;**********gps***** uart2===com

3***************

[hkey_local_machine/drivers/builtin/serial2]

"devicearrayindex"=dword:2

"irq"=dword:f

"membase"=dword:50008000

"memlen"=dword:30 ;; 2c

"interruptbitsshift"=dword:6 ; uart 2 interrupt sub register shift bit.

;"isttimeouts"=dword:200

; every 512 ticks checking modem status.

"prefix"="com"

"index"=dword:3

"dll"="serial_smdk2443.dll"

"order"=dword:0

"priority"=dword:0

"port"="com3:"

"devicetype"=dword:0  ; irda modem, 0 -> null modem

"friendlyname"="gps com3"

"iclass"=""

"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

應用程式通過com2

可以接受到

gps傳送的資料並進行解析,把解析出來的資料在

shell

上顯示,給用於直觀的

gps資料。應用端往往需要多個

com口來接受

gps傳送的資料,那麼如何解決這個問題了,可以通過基於

com3

來虛擬多個串列埠出來,這樣可以開啟多個

com口來接受

gp傳送過來的資料,如何實現呢?只需要做一下動作就可以實現了。

1. 使用

vspd.dll

來實現虛擬多個串列埠功能,這個驅動在網上應該很容易找到的。

2. 如果是wince5.0

那麼就在

platform.bib

中加入:

vspd.dll        

$(_flatreleasedir)/vspd.dll

nk  sh

如果是wince6.0

系統,那麼就在

platform.bib

中加入:

vspd.dll        

$(_flatreleasedir)/vspd.dll

nk  shk   

對於wince5.0

和wince6.0

系統,這個

vspd.dll

驅動是通用的。

3.在platform.reg

中加入[hkey_local_machine/drivers/builtin/vspd0]

"priority"=dword:00000000

"devicearrayindex"=dword:00000000

"portisro"=dword:00000000

"splitport"=dword:00000003

"index"=dword:00000001

"prefix"="com"

"dll"="vspd.dll"

"devicetype"=dword:00000000

"tsp"="unimodem.dll"

"friendlyname"="virtual port com1"

"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/vspd1]

"priority"=dword:00000000

"devicearrayindex"=dword:00000001

"portisro"=dword:00000000

"splitport"=dword:00000003

"index"=dword:00000005

"prefix"="com"

"dll"="vspd.dll"

"devicetype"=dword:00000000

"tsp"="unimodem.dll"

"friendlyname"="virtual port com5"

"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/vspd2]

"priority"=dword:00000000

"devicearrayindex"=dword:00000002

"portisro"=dword:00000000

"splitport"=dword:00000003

"index"=dword:00000006

"prefix"="com"

"dll"="vspd.dll"

"devicetype"=dword:00000000

"tsp"="unimodem.dll"

"friendlyname"="virtual port com6"

"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

上面的登錄檔就是基於com3

,虛擬出

com1

、com5

和com6

,這樣這4個

com口都可以用於和

gps通訊了,在這裡強調一點,就是登錄檔項

"splitport"=dword:00000003

的值一定要和實際的com

口一致(

在此是com3)

WINCE下如何虛擬多個串列埠

應用背景 我們的產品是gps產品,gps模組是通過tx與rx來和cpu串列埠控制器的uart2連線的,對應於com3 這個可以根據自己的專案的需要來定 platform.reg中登錄檔資訊如下 gps uart2 com3 hkey local machine drivers builtin ser...

WinCE虛擬串列埠驅動 二

不過該驅動 是作者量身定做的,像iocontrol就簡單地實現了幾個,其餘的因為在實際使用中本人沒用到,所以都沒實現,只是簡單地返回了false。如果有朋友對此有興趣,並且實際中也使用到,可以自行呼叫原生函式實現。最後,是能讓驅動正常掛載的登錄檔設定 hkey local machine drive...

WinCE虛擬串列埠驅動 二

不過該驅動 是作者量身定做的,像iocontrol就簡單地實現了幾個,其餘的因為在實際使用中本人沒用到,所以都沒實現,只是簡單地返回了false。如果有朋友對此有興趣,並且實際中也使用到,可以自行呼叫原生函式實現。最後,是能讓驅動正常掛載的登錄檔設定 hkey local machine drive...