none
二个流串口驱动, 一个流串口驱动和实际物理串口驱动的问题 RRS feed

  • 问题

  • 在WinCE下, 我想实现字符流驱动, 最终要分别以


    CreateFile(TEXT("STR8:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
    CreateFile(TEXT("STR9:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);


    打开。

    把它做成二个流驱动,分别设置注册表-->STR8, -->STR9,  分别调用应是可以的.

    做成一个流驱动也是可以的。在做成一个流驱动时,但我不知道STR8, STR9这些东西在注册表中或流驱动内部如何设置? 请专家给予解答.

     

    2008年12月10日 8:23

答案

  • 关于设置波特率的问题,你在google里面搜索一下就知道了,有些问题很基础,完全可以自己在网上搜索到。

     

    我不建议你自己通过流设备的方式来实现串口驱动,你完全可以使用微软提供的串口驱动模型。

     

    我的建议是你使用微软的串口驱动模型来开发你的驱动,还有你问问题最好介绍一下你的软硬件平台和你到底要做什么?

     

    2008年12月12日 1:58

全部回复

  • 首先,我认为如果你做成两个流驱动,就不可能同名了,也就是说不能都叫STR,因为设备的命名应该由三个字母一个索引号组成。一般对于一个驱动,在注册表中的Prefix表示设备名,DeviceArrayIndex表示索引号。

     

    如果你的两个设备属于同一类设备(比如串口1和串口2),是应该使用一个流设备驱动的。在注册表配置中的Prefix设置设备名,也就是STR,分别设置DeviceArrayIndex为8和9,举个例子:

    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\str_8]
       "DeviceArrayIndex"=dword:8
       "Prefix"="STR"
       "Dll"="streamdriver.Dll"

     

    [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\str_9]
       "DeviceArrayIndex"=dword:9
       "Prefix"="STR"
       "Dll"="streamdriver.Dll"

    当然,你的驱动里面也要进行判断。

    2008年12月11日 2:40
  • 流驱动打开串口:

    CreateFile(TEXT("COM8:"), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);

    直接打开,  不需要设置波特率等参数(是不是默认的,如果要改波特率呢,如何改?).

     

    实际物理串口打开方式:

    要设置波特率等参数, 可以指定串口事件, 接收到一个字符触发串口事件等.

     

     

    我以流驱动方式实现了一个串口驱动. 这一个串口驱动与实际物理上的串口驱动有什么不同?

     

    由于没有设备实际测试, 也不知流驱动的串口 和 实际设备接时会有什么问题?

     

     

     

    2008年12月11日 15:47
  • 关于设置波特率的问题,你在google里面搜索一下就知道了,有些问题很基础,完全可以自己在网上搜索到。

     

    我不建议你自己通过流设备的方式来实现串口驱动,你完全可以使用微软提供的串口驱动模型。

     

    我的建议是你使用微软的串口驱动模型来开发你的驱动,还有你问问题最好介绍一下你的软硬件平台和你到底要做什么?

     

    2008年12月12日 1:58