应用背景

我们的产品是GPS产品,GPS模块是通过TX与RX来和CPU串口控制器的UART2连接的,对应于COM3(这个可以根据自己的项目的需要来定),platform.reg中注册表信息如下:

;==========GPS===== UART2===COM3===============

[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"="{CC5195AC-BA49-48a0-BE17-DF6D1B0173DD}"

"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)。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chinesedragon2010/archive/2010/09/09/5872435.aspx

WINCE下如何虚拟多个串口相关推荐

  1. WinCE下串口虚拟软件

    前段时间,介绍了一个WinCE下的串口调试软件Serial Splitter Mobile 3.2.它的主要功能是将一个物理串口克隆成N个,供不同的应用程序使用,以监视物理串口收发的数据.今天介绍一个 ...

  2. wince下的蓝牙串口通信

    wince下的蓝牙串口通信(上) wince下的蓝牙串口通信(下)--客户端

  3. 记WinCE下调试SIM900 GSM module

    记WinCE下调试SIM900 GSM module 近几天在调试sim900,把遇到的一些问题总结下吧. 一.一些引脚的说说明. Sim900有几个引脚需要了解下. 1.  CTS.RTS 由于使用 ...

  4. WINCE下实现USB转RS232

    WINCE下可以通过一个USB TO RS232转换器来实现USB转RS232,也即WINCE设备的USB host接USB TO RS232转换器的USB端,而USB TO RS232转换器的RS2 ...

  5. WINCE下模拟鼠标点击,移动

    最近进行一个车载项目, 碰到这样的需求: 通过串口接收鼠标的按下/弹起和坐标消息, 在WINCE下模拟鼠标消息.经过努力, 得出了两个方案: 1. 使用广播发送鼠标消息 2. 使用mouse_even ...

  6. Wince下usb驱动详细总结(史无前例的详细)

    0,前言: 1, 本篇文章只讲wince下的usb host驱动,并深入解析HID驱动.本博客的目的并不是只是为了讲怎么写驱动, 更重要的是: 1,了解wince驱动的架构. 2,学习微软的写作方法, ...

  7. Linux下Apache虚拟主机配置

    说明: Apache版本:httpd-2.2.31 Apache安装目录:/usr/local/apache 目的: 配置Apache虚拟主机 具体操作: 1.修改Apache主配置文件 cp /us ...

  8. 【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)

    SD Card Driver on ADS Summary 了解SD card. 1 WinCE 5.0下SD Stack. 6 Bus Driver 7 Host Controller Driver ...

  9. 在Window Embedded CE(Wince)下使用OpenNETCF进行路由表的开发

    点击打开链接 背景 在开发3G项目的是时候,发现尽管3G网络连接已经建立成功了,但是数据不能发送成功,查明原因,由于路由表的问题,导致数据往ActiveSync连接的对端,也就是PC发送,而不是发送到 ...

最新文章

  1. 技术图文:如何理解C#的internal限制修饰符?
  2. 五大核心构成的AIoT,正在遭遇三大挑战,两条突破口外还有什么?
  3. jquery.inputmask.js 输入框input输入内容格式限制插件
  4. 剑指 Offer 05. 替换空格 简单
  5. 使用PHP CURL 模拟HTTP实现在线请求工具-toolfk程序员工具网
  6. mysql表打包到程序中_C#/winform程序打包布署 如何把SQL 数据库 一起打包进去?
  7. 首发不同文件的md5碰撞真正方法——有图(视频教程加工具)非暴力碰撞!
  8. SD卡支持大容量办法(转)
  9. 局域网中只有一台电脑无法连接共享打印机,其他电脑均可正常连接解决方案
  10. Jmeter压力测试-微信小程序
  11. socket函数send和recv函数
  12. 电路实验一阶电路误差分析_差动放大电路 | 电阻误差对共模抑制比的影响有多大?...
  13. 根据电子设计大赛心率检测的设计实践思路
  14. 妈妈也曾是少女!Binking玫瑰海藻银耳羹,还妈妈一个粉红的梦!
  15. 26、使用友善NanoPi NEO和外设硬件实现语音唤醒功能、目标检测功能、语音播报功能
  16. 计算机音乐妈妈好乐谱,《世上只有妈妈好》歌曲简谱
  17. 【Java SE】封装的详解
  18. 17年电赛综合测评——四分频电路
  19. dockers安装Jenkins
  20. 手把手搭建个人博客(图文教程)

热门文章

  1. 015_Vue生命周期
  2. 009_JavaScript语句、表达式和代码块
  3. Android开发中遇到的bug
  4. Android安全加密:Https编程
  5. IDEA2018软件安装教程
  6. Math Adventures with Python
  7. php 检测密码,php检测密码强度
  8. Mongodb的安装部署
  9. Docker容器的备份和还原
  10. android 除了webview 浏览器控件,AgentWeb是基于Android WebView一个功能完善小型浏览器库...