国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

查看: 23360|回復(fù): 0
打印 上一主題 下一主題

教你在全志T507開發(fā)板上添加兩個(gè)GPIO按鍵

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2022-10-14 13:57:22 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
關(guān)鍵詞: GPIO
本文將為大家介紹如何在飛凌OKT507-C開發(fā)板上添加兩個(gè)GPIO按鍵,希望能夠?qū)Ω魑还こ處熡兴鶐椭疚恼乱訮E5、PE6兩個(gè)引腳為例。話不多說,下面我們進(jìn)入主題。

一、GPIO按鍵添加方法

1. 添加內(nèi)核配置
Linux內(nèi)核源代碼中集成了很多功能,一般的用戶只會用到其中的部分功能。用戶從中挑選自己需要的功能,這就叫內(nèi)核配置。下面我們開始進(jìn)行配置。

注意:

(1)在進(jìn)行配置前,需要對

OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/configs/sun50iw9p1smp_longan_dcfconfig文件提前做好備份;

(2)以下所有圖中的紅框?yàn)樾薷暮蟮膬?nèi)容。

vi OKT507-linux-sdk/kernel/linux-4.9/.config






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯






2. 添加key節(jié)點(diǎn)

添加結(jié)點(diǎn)需要我們到設(shè)備樹中進(jìn)行添加,設(shè)備樹是一個(gè)描述硬件的數(shù)據(jù)結(jié)構(gòu),甚至你可以將其看成一個(gè)大結(jié)構(gòu)體(這個(gè)結(jié)構(gòu)體就是平臺,成員就是具體的設(shè)備),將硬件的配置從linux內(nèi)核的源碼中提取出來。




下面打開我們的T507設(shè)備樹文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯






其中按鍵鍵值設(shè)置如下。



[backcolor=rgba(18, 18, 18, 0.5)]​




編輯






相關(guān)鍵值可通過查看input-event-codes.h文件確定。

vi OKT507-linux-sdk/kernel/linux-4.9/include/uapi/linux/input-event-codes.h






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯








[backcolor=rgba(18, 18, 18, 0.5)]​




編輯









3. 添加引腳定義
添加引腳定義需要用到pinctrl,下面給大家簡單介紹下pinctrl。pinctrl就是系統(tǒng)中pin引腳的控制。




假如在使用到GPIO、I2C等功能時(shí),若按引腳逐一地去找對應(yīng)的寄存器進(jìn)行配置非常浪費(fèi)時(shí)間和精力,所以內(nèi)核引入了pinctrl子系統(tǒng),把引腳的復(fù)用和配置抽象出來,只需要芯片廠商把自家芯片的支持進(jìn)去,就可以很方便的配置引腳。




下面打開我們的pinctrl文件,如下:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯









4. 關(guān)閉沖突功能

因?yàn)橛行┕δ芙Y(jié)點(diǎn)使用的引腳與我們這次復(fù)用的引腳發(fā)生沖突,會發(fā)生引腳不生效的錯(cuò)誤,所以我們一定要檢查好,然后將其關(guān)閉。  

如下打開設(shè)備樹文件:

vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/OKT507-C-Common.dtsi






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯切換為居中














[backcolor=rgba(18, 18, 18, 0.5)]​




編輯









vi OKT507-linux-sdk/kernel/linux-4.9/arch/arm64/boot/dts/sunxi/sun50iw9p1-pinctrl.dtsi




注意:

因攝像頭csi復(fù)用的引腳與我們這里的沖突,雖然前面將狀態(tài)disabled了,pinctrl這里也有可能會造成沖突,為了避免不必要的麻煩,我們也將這里注釋掉。






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯切換為居中






5. 驅(qū)動修改

gpio-keys是基于input子系統(tǒng)實(shí)現(xiàn)的一個(gè)通用按鍵驅(qū)動,該驅(qū)動基于platform_driver架構(gòu),實(shí)現(xiàn)了驅(qū)動和設(shè)備分離,符合Linux設(shè)備驅(qū)動模型的思想,也符合linux驅(qū)動實(shí)現(xiàn)模型,即driver和device分離模型。




一般按鍵驅(qū)動,都是基于gpio-keys進(jìn)行開發(fā)的。驅(qū)動文件如下:

vi OKT507-linux-sdk/kernel/linux-4.9/drivers/input/keyboard/gpio_keys.c






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯














[backcolor=rgba(18, 18, 18, 0.5)]​




編輯














[backcolor=rgba(18, 18, 18, 0.5)]​




編輯切換為居中














[backcolor=rgba(18, 18, 18, 0.5)]​




編輯切換為居中




添加圖片注釋,不超過 140 字(可選)









[backcolor=rgba(18, 18, 18, 0.5)]​




編輯切換為居中









二、測試方法

終端窗口輸入evtest,選擇 7。






[backcolor=rgba(18, 18, 18, 0.5)]​




編輯切換為居中






從上圖紅框可以看出,通過evtest測試工具將內(nèi)核設(shè)備讀取并打印設(shè)備描述的事件,到這里,GPIO按鍵就做完了,可以用它來實(shí)現(xiàn)很多的功能,比如說按一下切換燈的狀態(tài),蜂鳴器響等。




當(dāng)然不只是這些啦,我們還可以利用它去實(shí)現(xiàn)很多其他功能,歡迎各位聰明的工程師小伙伴自行發(fā)揮!


您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷亚洲视频 | 日韩在线不卡视频 | 性西欧俄罗斯极品 | 爆操妹子 | 青娱乐自拍视频 | 成品人短视频app | 91亚洲国产成人久久精品网址 | 日本精品视频四虎在线观看 | 久久综合久久鬼色 | 中文字幕在线2021一区 | 日韩欧美一区二区三区视频 | 国产精品热久久 | 加勒比日本道 | 在线观看黄a | 一区免费| 欧美成a高清在线观看www | 亚洲一级片网站 | 综艺在线看免费高清 | 亚洲欧美综合另类 | 亚洲成人国产 | 日本www在线观看 | 亚洲一区二区三区亚瑟 | 亚洲精品欧美综合四区 | 日本不卡一区二区三区在线观看 | 日本不卡免费高清一级视频 | 成年男女的免费视频网站 | 免费国产不卡午夜福在线 | 草逼com| 日木毛片| 国产又黄又a又潮娇喘视频 国产又粗又爽又大又长免费视 | 一级做α爰片久久毛片 | 日本视频在线免费播放 | 亚洲熟妇毛茸茸 | 亚洲香蕉久久一区二区三区四区 | 久久久久久久久一级毛片 | 国产一区二区三区手机在线观看 | 魏璎珞电视剧免费观看 | 亚洲欧美日韩精品一区 | 欧美激情一区二区三区在线 | 久久精品成人一区二区三区 | 亚洲二三区 |