首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于WinCE的I2C驱动程序设计 03

基于WinCE的I2C驱动程序设计 03

主要是创建线程、关联事件和中断,主要语句如下:
  InterruptInitialize( 36,pIicHead->hIicEvent,NULL,0 );//关联时间和中断
  CreateThread( NULL,0,IicDispatchThread,pIicHead,0,NULL );//创建线程等待时间
  在IicDispatchThread()函数中,主要是等待中断的产生,然后去执行:WaitReturn =        WaitForSingleObject( pIicHead->hIicEvent,INFINITE );
  IicEventHandler( pIicHead );//事件处理函数
  InterruptDone( 36 );
  最后,在函数IIC_Open、IIC_Read、IIC_Write中,对各个寄存器进行操作,进行数据的赋值,得到I2C读取的数据和发送数据。
4 I2C驱动的封装和添加到Windows CE中
  通过上面的工作,能编译一个DLL函数,但这还不能叫流接口驱动程序。因为它的接口函数还没有导出,还需要告诉链接程序需要输出什么样的函数,为此要建立一个自己的def文件,可以用记事本建一个,取名mydrive.Def:
  LIBRARY MyDriver

  EXPORTS
  IIC_Close
  IIC_Deinit
  IIC_Init
  IIC_IOControl
  IIC_Open
  IIC_PowerDown
  IIC_PowerUp
  IIC_Read
  IIC_Seek
  IIC_Write
  然后同样用记事本编写一个注册表文件,取名为mydrive.reg:
  [HKEY_LOCAL_MACHINE\Drivers\BuiltIn\STRINGS]

  "Index"=dword:1
  "Prefix"="IIC"
  "Dll"="MyDriver.dll"
  "Order"=dword:0
返回列表