亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于GPIO的按鍵板實(shí)現(xiàn)方案

454398 ? 來(lái)源:csdn ? 作者:NutriYang ? 2020-10-18 11:43 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

介紹簡(jiǎn)單的ADC實(shí)現(xiàn),需要IC提供一個(gè)額外的ADC。但出于IC成本的考慮,無(wú)法提供這個(gè)的ADC時(shí),但提供了多個(gè)額外的GPIO(General Purpose Input Output:雙向的:可以為輸入/輸出,只有兩個(gè)狀態(tài)High/Low),就可以使用本篇的實(shí)現(xiàn)方法了。

基于GPIO的按鍵板

基于GPIO的按鍵板實(shí)現(xiàn),需要提供額外的GPIO口供使用。GPIO口足夠多的話可以一個(gè)按鍵對(duì)應(yīng)一個(gè)GPIO,不夠多的時(shí)候可以使用矩陣掃描方式實(shí)現(xiàn),若可供使用的GPIO連矩陣掃描方式都不滿足,還可以增加二極管來(lái)進(jìn)一步擴(kuò)展成2個(gè)GPIO實(shí)現(xiàn)6個(gè)按鍵,本節(jié)將簡(jiǎn)單介紹這些方法。另外還可以通過(guò)擴(kuò)展GPIO的方法來(lái)實(shí)現(xiàn),將在下一篇幅中專(zhuān)門(mén)介紹。

嵌入式開(kāi)發(fā)中,GPIO是最常用的控制接口,普通GPIO只具有High/Low兩個(gè)狀態(tài),我們可以對(duì)其進(jìn)行Read/Write操作。

1:足夠多的GPIO供使用

則每個(gè)按鍵對(duì)應(yīng)一個(gè)GPIO口,電路設(shè)計(jì)可以保證:無(wú)按鍵動(dòng)作GPIO口為L(zhǎng)ow,有按鍵動(dòng)作GPIO口為High,或者相反。軟件設(shè)計(jì)只需要逐個(gè)掃描每個(gè)GPIO口的狀態(tài),就可以知道某個(gè)按鍵是否有動(dòng)作。

2:有限的GPIO供使用:使用矩陣掃描按鍵方式是最常見(jiàn)的方案。

其原理如下:任意兩個(gè)GPIO之間連接一個(gè)按鍵,比如GPIO_1 & GPIO_2,其默認(rèn)狀態(tài)為L(zhǎng)ow,按鍵按下的話,兩者就連通了,這就意味著,我們可以先給GPIO_1一個(gè)High信號(hào),接著去讀取GOIO_2,如果得到High,則這個(gè)按鍵被按下了,否則就是沒(méi)有按鍵動(dòng)作。

數(shù)學(xué)告訴我們,基于這種方案的N個(gè)GPIO口,最多可以實(shí)現(xiàn)N*(N-1)/2個(gè)按鍵,也就是N的組合數(shù)。如下圖:4個(gè)GPIO(A/B/C/D)實(shí)現(xiàn)6(KEY_1…KEY_6)個(gè)按鍵的原理圖

變成也是比較簡(jiǎn)單了,給個(gè)C代碼如下:

這里通過(guò)適當(dāng)?shù)牧鞒淘O(shè)計(jì),可以使得代碼緊湊有序。在按鍵比較少的情況下,一個(gè)挨著一個(gè)的去讀寫(xiě)的方法也不錯(cuò),但在較多按鍵的時(shí)候,上面代碼的流程設(shè)計(jì)就比較具有優(yōu)勢(shì)了。能夠在1分鐘內(nèi),看明白為什么使用 i*k+k-1 作為返回索引,我相信你的邏輯能力很OK。

3:進(jìn)一步擴(kuò)展---2個(gè)GPIO實(shí)現(xiàn)6個(gè)按鍵

如果在你的設(shè)計(jì)中,GPIO口的數(shù)量很有限,不能滿足矩陣掃描方式的需要,那么你有兩種選擇:1 擴(kuò)展GPIO口,下一篇幅中將專(zhuān)門(mén)討論;2 增加一些二極管來(lái)進(jìn)一步擴(kuò)充矩陣掃描方式的能力。我們這里討論一個(gè)2個(gè)GPIO實(shí)現(xiàn)6個(gè)按鍵的方法,原理圖如下:

這種實(shí)現(xiàn)方法實(shí)際上就是利用了二極管的單向?qū)ㄌ匦?,使得我們可以區(qū)分更多的按鍵,分析如下:

1:Write GPIO_1=1 & GPIO_2=1,接著Read if GPIO_1==0 & GPIO_2==0,則為 KEY_3;

if GPIO_1==0 & GPIO_2==1,則為 KEY_1;

if GPIO_1==1 & GPIO_2==0,則為 KEY_2;

2:Write GPIO_1=0 & GPIO_2=1, 接著Read if GPIO_2==0,則為 KEY_4 or KEY_6;

需要進(jìn)一步判斷:Write GPIO_1=1 & GPIO_2=0 然后Read:if GPIO_1==0 則為 KEY_4;

if GPIO_1==1 則為 KEY_6;

3:反序執(zhí)行步驟2,可以區(qū)分出 KEY4 & KEY5。

明白了原理,軟件編程實(shí)現(xiàn)就比較簡(jiǎn)單了,給出一個(gè)實(shí)現(xiàn)如下:

在這個(gè)編程實(shí)現(xiàn)里,在寫(xiě)操作之后,可能需要適當(dāng)?shù)腄elay以使得其狀態(tài)穩(wěn)定;若是基于總線的嵌入式系統(tǒng),也需要在函數(shù)退出前釋放總線。

3:總結(jié)與討論

基于矩陣掃描方式的按鍵板實(shí)現(xiàn),是很最常用的。在GPIO口比較緊缺的情況下,可以通過(guò)在電路中適當(dāng)增加幾個(gè)二極管來(lái)解決。如果這樣還不能解決,就必須設(shè)法擴(kuò)展GPIO了,稍后討論。

下面給出了一個(gè)很不錯(cuò)的 矩陣掃描+二極管擴(kuò)展 的電路圖,你能為它寫(xiě)一個(gè)驅(qū)動(dòng)嗎?相當(dāng)具有挑戰(zhàn)性哦,試試看吧……

編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 矩陣
    +關(guān)注

    關(guān)注

    1

    文章

    440

    瀏覽量

    35744
  • 軟件編程
    +關(guān)注

    關(guān)注

    1

    文章

    41

    瀏覽量

    11683
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1309

    瀏覽量

    55548
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    極簡(jiǎn)主義者的福音:GPIO關(guān)機(jī)功能,短按長(zhǎng)按一代碼搞定!

    追求代碼簡(jiǎn)潔高效?這個(gè)GPIO關(guān)機(jī)方案正適合你。僅需少量代碼,即可實(shí)現(xiàn)按鍵短按執(zhí)行重啟、長(zhǎng)按觸發(fā)關(guān)機(jī),結(jié)構(gòu)清晰,易于移植和維護(hù)。 本文將以Air8000核心板為例,分享如何使用
    的頭像 發(fā)表于 10-26 16:58 ?697次閱讀
    極簡(jiǎn)主義者的福音:<b class='flag-5'>GPIO</b>關(guān)機(jī)功能,短按長(zhǎng)按一代碼搞定!

    在友晶DE1-SOC開(kāi)發(fā)板實(shí)現(xiàn)Chirikov標(biāo)準(zhǔn)映射求解器

    該項(xiàng)目是在友晶DE1-SOC開(kāi)發(fā)板實(shí)現(xiàn)Chirikov標(biāo)準(zhǔn)映射的求解器,并將其應(yīng)用于圖像加密和解密的概念驗(yàn)證。
    的頭像 發(fā)表于 07-07 15:22 ?1466次閱讀
    在友晶DE1-SOC開(kāi)發(fā)<b class='flag-5'>板實(shí)現(xiàn)</b>Chirikov標(biāo)準(zhǔn)映射求解器

    AS32X601驅(qū)動(dòng)系列教程 GPIO_按鍵檢測(cè)詳解

    在嵌入式系統(tǒng)開(kāi)發(fā)中,GPIO(通用輸入輸出端口)是實(shí)現(xiàn)硬件與軟件交互的關(guān)鍵組件。本節(jié)主要利用的時(shí)GPIO的輸入采集功能,本節(jié)的主要功能為,讀取板載按鍵,當(dāng)
    的頭像 發(fā)表于 05-23 16:44 ?529次閱讀
    AS32X601驅(qū)動(dòng)系列教程 <b class='flag-5'>GPIO</b>_<b class='flag-5'>按鍵</b>檢測(cè)詳解

    第六章 GPIO輸入——按鍵檢測(cè)

    本篇文章講述了如何在W55MH32上實(shí)現(xiàn)按鍵輸入檢測(cè),以及按鍵輸入檢測(cè)的注意事項(xiàng)、實(shí)現(xiàn)方式和代碼講解等。掌握了按鍵檢測(cè)方式之后,我們就可以用
    的頭像 發(fā)表于 05-22 16:41 ?664次閱讀
    第六章 <b class='flag-5'>GPIO</b>輸入——<b class='flag-5'>按鍵</b>檢測(cè)

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉識(shí)別方案

    在RV1126上實(shí)現(xiàn)人臉識(shí)別:在圖像中找出人臉,并與數(shù)據(jù)庫(kù)進(jìn)行比對(duì),得出該人臉對(duì)應(yīng)的身份信息。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為三個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人臉識(shí)別功能,
    的頭像 發(fā)表于 04-21 13:51 ?11次閱讀
    基于RV1126開(kāi)發(fā)<b class='flag-5'>板實(shí)現(xiàn)</b>人臉識(shí)別<b class='flag-5'>方案</b>

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉識(shí)別方案

    在RV1126開(kāi)發(fā)板上實(shí)現(xiàn)人臉識(shí)別:在圖像中找出人臉,并與數(shù)據(jù)庫(kù)進(jìn)行比對(duì),得出該人臉對(duì)應(yīng)的身份信息。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為三個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人臉識(shí)別功能,
    的頭像 發(fā)表于 04-21 10:24 ?107次閱讀
    基于RV1126開(kāi)發(fā)<b class='flag-5'>板實(shí)現(xiàn)</b>人臉識(shí)別<b class='flag-5'>方案</b>

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人員檢測(cè)方案

    在RV1126開(kāi)發(fā)板實(shí)現(xiàn)人員檢測(cè):在圖像中找出人。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人員檢測(cè)功能。
    的頭像 發(fā)表于 04-18 17:14 ?220次閱讀
    基于RV1126開(kāi)發(fā)<b class='flag-5'>板實(shí)現(xiàn)</b>人員檢測(cè)<b class='flag-5'>方案</b>

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉識(shí)別方案

    在RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉識(shí)別:在圖像中找出人臉,并與數(shù)據(jù)庫(kù)進(jìn)行比對(duì),得出該人臉對(duì)應(yīng)的身份信息。 方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為三個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像,算法代碼負(fù)責(zé)人臉識(shí)別功能,
    的頭像 發(fā)表于 04-18 16:55 ?83次閱讀
    基于RV1126開(kāi)發(fā)<b class='flag-5'>板實(shí)現(xiàn)</b>人臉識(shí)別<b class='flag-5'>方案</b>

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案

    在RV1126上實(shí)現(xiàn)人臉檢測(cè):在圖像中找出人臉,以及每張人臉的landmarks位置。方案設(shè)計(jì)邏輯流程圖,方案代碼分為分為兩個(gè)業(yè)務(wù)流程,主體代碼負(fù)責(zé)抓取、合成圖像, 算法代碼負(fù)責(zé)人臉檢測(cè)功能。
    的頭像 發(fā)表于 04-18 16:47 ?277次閱讀
    基于RV1126開(kāi)發(fā)<b class='flag-5'>板實(shí)現(xiàn)</b>人臉檢測(cè)<b class='flag-5'>方案</b>

    RV1126 實(shí)現(xiàn)人臉檢測(cè)方案

    基于RV1126開(kāi)發(fā)板實(shí)現(xiàn)人臉檢測(cè)方案,充分體現(xiàn)了電子方面的實(shí)踐經(jīng)驗(yàn)和目標(biāo)檢測(cè)技術(shù)。
    的頭像 發(fā)表于 04-14 09:25 ?609次閱讀
    RV1126 <b class='flag-5'>實(shí)現(xiàn)</b>人臉檢測(cè)<b class='flag-5'>方案</b>

    為什么GPIO配置總是出問(wèn)題?

    在STM32開(kāi)發(fā)中,GPIO(通用輸入輸出)配置看似簡(jiǎn)單,但在實(shí)際開(kāi)發(fā)中,很多人常常會(huì)遇到這些困惑:明明按照教程配置了GPIO,為什么LED燈就是不亮?為什么有時(shí)候按鍵無(wú)法響應(yīng),或者響應(yīng)很慢
    的頭像 發(fā)表于 04-07 11:59 ?1227次閱讀
    為什么<b class='flag-5'>GPIO</b>配置總是出問(wèn)題?

    瑞芯微RK安卓Android主板GPIO按鍵配置方法,觸覺(jué)智能嵌入式開(kāi)發(fā)

    觸覺(jué)智能分享,瑞芯微RK安卓Android主板GPIO按鍵配置方法,方便大家更好利用主板空閑IO!
    的頭像 發(fā)表于 02-26 16:29 ?964次閱讀
    瑞芯微RK安卓Android主板<b class='flag-5'>GPIO</b><b class='flag-5'>按鍵</b>配置方法,觸覺(jué)智能嵌入式開(kāi)發(fā)

    GPIO使用教程 GPIO接口應(yīng)用

    交互,實(shí)現(xiàn)外部設(shè)備的控制和數(shù)據(jù)傳輸。 一、GPIO的基本概念 GPIO的全稱(chēng)是General-Purpose Input/Output,即通用輸入/輸出。它是一種在電子設(shè)備中常見(jiàn)的接口,允許控制和讀取
    的頭像 發(fā)表于 01-31 10:10 ?4860次閱讀

    遠(yuǎn)心鏡頭應(yīng)用手機(jī)按鍵檢測(cè)

    遠(yuǎn)心鏡頭的手機(jī)按鍵檢測(cè)方案具有高效、準(zhǔn)確、穩(wěn)定等優(yōu)點(diǎn)。該方案能夠實(shí)現(xiàn)對(duì)手機(jī)按鍵的全方位檢測(cè),包括按鍵
    的頭像 發(fā)表于 01-20 10:18 ?636次閱讀
    遠(yuǎn)心鏡頭應(yīng)用手機(jī)<b class='flag-5'>按鍵</b>檢測(cè)

    藍(lán)橋杯中GPIO輸入之按鍵實(shí)驗(yàn)

    第一節(jié)按鍵的基本知識(shí)按鍵按照結(jié)構(gòu)原理可分為兩類(lèi),一類(lèi)是觸點(diǎn)式開(kāi)關(guān)按鍵,如機(jī)械式開(kāi)關(guān)、導(dǎo)電橡膠式開(kāi)關(guān)燈;另一類(lèi)是無(wú)觸點(diǎn)式開(kāi)關(guān)按鍵,如電氣式按鍵
    的頭像 發(fā)表于 01-09 21:02 ?1196次閱讀
    藍(lán)橋杯中<b class='flag-5'>GPIO</b>輸入之<b class='flag-5'>按鍵</b>實(shí)驗(yàn)