在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Windows CE的7×3手機鍵盤驅(qū)動實現(xiàn)

            基于Windows CE的7×3手機鍵盤驅(qū)動實現(xiàn)

            作者: 時間:2012-03-22 來源:網(wǎng)絡(luò) 收藏

            對于7×3的,下圖為物理按鍵和掃描碼的對應(yīng)關(guān)系(掃描碼為16進(jìn)制):

             

            5列(KP_MKOUT4)

            6列(KP_MKOUT5)

            7列(KP_MKOUT6)

            1行(KP_MKIN0)

            0x04

            0x05

            0x06

            2行(KP_MKIN1)

            0x14

            0x15

            0x16

            3行(KP_MKIN2)

            0x24

            0x25

            0x26

            4行(KP_MKIN3)

            0x34

            0x35

            0x36

            5行(KP_MKIN4)

            0x44

            0x45

            0x46

            6行(KP_MKIN5)

            0x54

            0x55

            0x56

            7行(KP_MKIN6)

            0x64

            0x65

            0x66

            7. ScanCodeToVKeyEx函數(shù)

            此函數(shù)提供掃描碼到虛擬鍵的映射操作,主要調(diào)用MapVkeyFromSCode函數(shù)完成從掃描碼到虛擬按鍵的映射。在 MapVkeyFromSCode函數(shù)的實現(xiàn)過程中,首先需要按照自己的要求和物理鍵盤的布局確定SC2VKMap[i][j]二維數(shù)組,其中數(shù)組的第一列為物理鍵盤上每個按鍵所對應(yīng)的掃描碼,第二列為第一列掃描碼所對應(yīng)的虛擬按鍵,開發(fā)者可以根據(jù)實際需要確定掃描碼和虛擬按鍵的對應(yīng)關(guān)系,通過這個二維數(shù)組的設(shè)定,就可以在程序運行的過程中,當(dāng)檢測到有按鍵被按下時,通過KeypdPdd_GetEventEx函數(shù)產(chǎn)生的掃描碼,然后通過查表的方式得到掃描碼所對應(yīng)的虛擬按鍵值。下表為掃描碼與虛擬碼的對應(yīng)關(guān)系表:

             

            5列

            6列

            7列

            掃描碼

            虛擬碼

            物理按鍵

            掃描碼

            虛擬碼

            物理按鍵

            掃描碼

            虛擬碼

            物理按鍵

            1行

            0x04

            VK_A

            預(yù)留

            0x05

            VK_B

            0x06

            VK_C

            預(yù)留

            2行

            0x14

            VK_D

            0x15

            VK_E

            菜單鍵

            0x16

            VK_F

            3行

            0x24

            VK_G

            OK鍵

            0x25

            VK_H

            0x26

            VK_I

            Cancel鍵

            4行

            0x34

            VK_1

            1

            0x35

            VK_2

            2

            0x36

            VK_3

            3

            5行

            0x44

            VK_4

            4

            0x45

            VK_5

            5

            0x46

            VK_6

            6

            6行

            0x54

            VK_7

            7

            0x55

            VK_8

            8

            0x56

            VK_9

            9

            7行

            0x64

            VK_J

            *

            0x65

            VK_0

            0

            0x66

            VK_K

            #

            其中VK_A、VK_B、VK_C、VK_D、VK_E、VK_F、VK_G、VK_H、VK_I、VK_J、VK_K、VK_1、VK_2、 VK_3、VK_4、VK_5、VK_6、VK_7、VK_8、VK_9、VK_0對應(yīng)的輸出為A、B、C、D 、E、F、G、H、I、J、K、1、2、3、4、5、6、7、8、9、0,但實際顯示的時候可以按照具體的要求進(jìn)行定義,完成物理按鍵對應(yīng)的輸出值,每個按鍵所實現(xiàn)的功能是由上層應(yīng)用程序定義的,這里再不詳細(xì)敘述。

            8. KeyPadGpioConfigure函數(shù)

            此函數(shù)的功能是完成所對應(yīng)GPIO口的配置,在具體函數(shù)的實現(xiàn)和開發(fā)中必須按照物理鍵盤的布局及芯片引腳占用情況進(jìn)行相應(yīng)的更改的。下面為KeyPadGpioConfigure函數(shù)的實現(xiàn):

            XLLP_UINT32_T GpioDirOutList[]={3,107,108,96, }; //3個輸出端口引腳號

            XLLP_UINT32_T GpioDirInList[]={7,100,101,102,97,39,90,91}; //矩陣鍵盤7個輸出端口引腳號XLLP_UINT32_T GpioAltFnPinList[]={10,39,90,91,96,97,100,101,102,107,108};//矩陣鍵盤GPIO引腳 XLLP_UINT32_T GpioAltFnValList[]={10,1,1,1,3,1,1,1,1,2,2}; // GPIO對應(yīng)的附加功能選擇

            if(v_pGPIOReg != 0) //判斷鍵盤GPIO寄存器是否已經(jīng)被配置

            {

            XllpGpioSetDirectionIn(v_pGPIOReg, GpioDirInList); //設(shè)置GPIO輸入端口方向

            XllpGpioSetDirectionOut(v_pGPIOReg, GpioDirOutList); //設(shè)置GPIO輸出端口方向

            XllpGpioSetOutput0(v_pGPIOReg, GpioDirOutList); //設(shè)置GPIO輸出端口

            XllpGpioSetAlternateFn(v_pGPIOReg, GpioAltFnPinList, GpioAltFnValList); //設(shè)置GPIO附加功能

            }

            if(v_pKeyPadRegs != 0) //判斷鍵盤寄存器是否已經(jīng)被配置

            {

            v_pKeyPadRegs->kpControlReg=(MATRIX_KP_NUMBER_OF_ROWS| MATRIX_KP_NUMBER_OF_COLUMNS | MAT_SCAN_LINE4 | MAT_SCAN_LINE5 | MAT_SCAN_LINE6 | AUTO_SCAN_ON_ACTIVITY | MATRIX_INTR_ENABLE | MATRIX_KP_ENABLE ) ; //設(shè)置矩陣鍵盤控制寄存器初值

            retval = XLLP_TRUE;

            }

            return(retval);

            9. 結(jié)束語

            本文作者創(chuàng)新點:完整地分析了Windows CE操作系統(tǒng)中7×3矩陣鍵盤的基本原理及其驅(qū)動程序模型,此設(shè)計是按照目前通用的手機鍵盤開發(fā)。并從實現(xiàn)方法的角度深入剖析了Windows CE中矩陣鍵盤掃描碼的獲取流程、將掃描碼映射到虛擬碼的方法,最后給出了矩陣鍵盤所對應(yīng)GPIO口的配置方法,對于類似系統(tǒng)的矩陣鍵盤驅(qū)動開發(fā)具有重要的參考價值。

            參考文獻(xiàn)

            [1] 阿蘭特嵌入式實驗室.PXA27x處理器開發(fā)手冊,2005:825-826.

            [2] 楊翠娥,王麗敏,王景敏.實時系統(tǒng)VxWorks下設(shè)備驅(qū)動程序的編寫[J].微計算機信息2004年第一期

            [3] 傅曦.Windows CE 嵌入式開發(fā)入門——基于Xscale架構(gòu)[M] 北京.人民郵電出版社,2006 :227-230.

            [4] 微軟.Platform Builder幫助文檔.

            [5] Windows CE設(shè)備驅(qū)動程序開發(fā)指南:15-16.


            上一頁 1 2 3 下一頁

            關(guān)鍵詞: 矩陣鍵盤 WindowsCE MDD PDD

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉