嵌入式系统
WINCE系统IO驱动说明
2013-03-25 17:18  浏览:49
  1. 设备名称:GPIO,设备驱动文件名是GPIOnnnnxxxxxx.dll, nnnn是产品型号,xxxxxx是驱动文件生成日期
  2. 本驱动能够管理DI、DO、AI、AO、PI、PO、运行指示灯、告警指示灯、蜂鸣器。运行指示灯、告警指示灯、蜂鸣器的IO类型是IO_TYPE_SYS,编号为1-3.
  3. 驱动需要在应用程序中动态加载
  4. 驱动操作主要通过填充IO_CMD结构数据进行。IO_CMD结构详见设备驱动头文件。
  5. IO__CMD结构变量通过GIO_IOControl接口写入和读取
    1. 函数原型:GIO_IOControl(DWORD hOpenContext,DWORD dwCode,PBYTE pBufIn,DWORD dwLenIn,PBYTE pBufOut,DWORD dwLenOut,PDWORD pdwActualOut);
    2. 参数说明:
      1. hOpenContext,设备句柄,执行CreateFile时得到
      2. dwCode,操作代码
      3. pBufIn,dwLenIn:写入驱动的数据
      4. pBufOut,dwLenOut:读取驱动的数据
      5. pdwActualOut,不使用。
  6. 初始化
    1. IO使用前必须先进行初始化,以便建立正确的IO功能配置
    2. 初始化步骤
      1. 声明操作数据结构
      2. 填写IO类型、通道号、初始变量值到IO_CMD结构变量
      3. 调用IOControl命令将数据写入驱动
      4. 编程示例(初始化AI1):
        1. struct IO_CMD BufIn;
        2. BufIn.type=IO_TYPE_AI;
        3. BufIn.channel=1;
        4. GIO_IOControl(hOpenContext,IOCTL_CMD_INIT,&BufIn,sizeof(BufIn),NULL,NULL,NULL);
  7. 数据读取编程示例,读取DI2电平
    1. struct IO_CMD BufIn;
    2. BufIn.type=IO_TYPE_DI;
    3. BufIn.channel=2;
    4. GIO_IOControl(hOpenContext,IOCTL_CMD_READ,&BufIn,sizeof(BufIn),&BufIn,sizeof(BufIn),NULL);
    5. BufIn.value即为返回值
  8. IO设置编程示例,设置AO3输出为5V
    1. struct IO_CMD BufIn;
    2. BufIn.type=IO_TYPE_AO;
    3. BufIn.channel=3;
    4. BufIn.value=0x7fff; //AO满幅输出为0xffff
    5. GIO_IOControl(hOpenContext,IOCTL_CMD_READ,&BufIn,sizeof(BufIn),NULL,NULL,NULL);

发表评论
0评