應用背景
我們的產品是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...