久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

Wince流式接口驅動

作者:huqin   來源:本站原創   點擊數:  更新時間:2014年04月21日   【字體:

   流式接口驅動程序就是系統提供了一組相同的接口,并導出一組相同的函數,通過修改這些函數達到底層硬件的驅動,稱為流式驅動(個人定義歡迎拍磚)。以下描述均已I/O驅動為例說明。

           建立流式驅動需要在BSP的\Src\Drivers目錄下建立一個文件夾存放4個文件,它們分別是.cpp文件、.def文件、Makefile(無擴展名)文件、source(無擴展名)文件。其中.cpp文件主要實現:驅動程序地址空間的分配、動態鏈接庫的入口設置、12個外部入口函數的設置等;.def文件主要是聲明需要輸出的接口函數;Makefile和source是為仿造wince下的driver架構而建立的文件。各個具體函數功能請參看代碼注釋。在建立以上文件后,還需在Platform.reg文件中注冊這個驅動的信息。內容如下
[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\GPIODriver]
"Prefix"="GIO"                   //聲明驅動名稱
"Index"=dword:1                
"Dll"="GPIODriver.dll"    //動態鏈接庫文件
        到此驅動函數基本上完成了,之后的工作就是VS2005創建一些控制界面以及調用這些函數而已。那么對于一些習慣性寫單片機程序的人,可能會有些疑問,在操作I/O時應該需要修改一些寄存器,為什么以上函數代碼均沒有做這方面的工作呢?其實寄存器的地址,以及地址映射在BSP中的.inc文件均有定義。在wince是不用知道這些底層硬件的具體內容,它們對于wince來說就相當一個文件而已。但本質上來說跟編寫單片機程序操作I/O的原理是一樣的,都是將I/O口控制為輸出,在對數據寄存器賦值,只是wince下編程有人給我們做了一部分工作而已,其實就驅動而言,自己直接操作物理地址實現驅動會更易于理解和簡單。
        接下來在VS2005建立工程文件,添加相應的按鈕。在按鈕單擊事件函數中添加如下代碼
        HANDLE gpiodriver;
gpiodriver=CreateFile(L"GIO1:",GENERIC_READ | GENERIC_WRITE, 0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL );
 
CDC *pDC = new CClientDC(this);
CBrush brush;
DeviceIoControl(gpiodriver,IO_CTL_GPIO_1_OFF,NULL,0,NULL,0,NULL,NULL);
brush.CreateSolidBrush(RGB(0,0,0));
CBrush *pOldBrush = pDC->SelectObject(&brush);
pDC->Ellipse(50,80,70,100);
pDC->SelectObject(pOldBrush);
delete pDC;
各個函數的原型及功能均可以在網上收索到,在此不做解釋(可以在工程文件中看到說明,但由于SDK的不同可能在其他的VS2005的編譯器下加載不成功,或者編譯不成功)接著就是編譯運行了,到此大功告成!

關閉窗口

相關文章

主站蜘蛛池模板: 久久精品国产亚洲一区二区三区 | a毛片| 成人亚洲精品 | 国产农村妇女精品一区 | 91av在线免费看 | 青青99| 国产一卡二卡三卡 | 欧美精品一区二区免费视频 | 久久中文高清 | 欧美一级片在线观看 | 久久av一区二区三区 | 日韩高清中文字幕 | 国产最新视频在线 | 亚洲精品免费在线观看 | jlzzjlzz国产精品久久 | 免费一级黄 | 久久黄色网 | 精品国产一区二区久久 | 亚洲 欧美 日韩 在线 | 欧美精品1区2区3区 精品国产欧美一区二区 | 狠狠ri | 精品久久久久久久 | av网站在线播放 | 亚洲激情视频在线 | www.嫩草 | 国产精品毛片一区二区三区 | 新疆少妇videos高潮 | 亚洲国产高清在线观看 | 亚洲国产精品一区二区第一页 | 韩日精品视频 | 男人天堂网址 | 91精品国产一区二区三区动漫 | 亚洲乱码一区二区三区在线观看 | 国产欧美综合在线 | 日韩欧美国产精品 | 久久久久av | 国产精品久久久久久久久久久久冷 | 日韩欧美国产精品 | 91人人澡人人爽 | 亚洲h在线观看 | 国产成人综合在线 |