• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > STM32單片機按鍵電路設計

    STM32單片機按鍵電路設計

    作者: 時間:2022-05-19 來源:網絡 收藏

    以前GPIO上接的電路都是低電平觸發的那種,新畫了個板子有一個設計的是高電平觸發,結果IO口設置成上拉輸入后,怎么讀都不正確,電路如圖1。無奈只能去調試一下,發現當設置為上拉輸入后,其ODR(GPIO輸出數據寄存器)相應的也置為1,百思不得其解。

    本文引用地址:http://www.czjhyjcfj.com/article/202205/434235.htm

    圖1 電路

    于是去看一下GPIO的結構圖:

    I/O引腳結構圖

    由圖可以發現其實輸出寄存器與輸入寄存器之間在I/O引腳處是線與狀態,在GPIO設置成上位輸入時,其上拉電阻閉合,這時如果輸出寄存器設置為0那么在IO口內部就會自己損耗電流,而這些電流的損耗是會增加功耗的。因此當GPIO設置成上拉輸入時,相應的輸出寄存器也設置為1。

    將按鍵電路與I/O引腳結構圖連起來看,就清晰多了,當GPIO設置為上位輸入時,上拉電阻與按鍵的330歐、220K歐串聯,這時IO口所讀到的電平就是330歐與220K歐電阻分壓的總合,由于這兩個電阻阻值過大,因引讀出的電壓大于邏輯‘1’的閥值。OK問題找到了,于是將IO設置成下拉輸入,問題就解決了。因此這里得出一個結論,IO口是上拉還是下拉要根據,IO口外部接的空閑電平有關,如按鍵不按下時是低電平,則應該設置為下拉輸入。

    在調試時還發現另一種方法可以讓代碼正常運行,就是當設置上拉輸入時,將其輸出值設置為0,這樣電平就被直接拉低了,按鍵的接地電路基本就不起作用了,但這樣做有一個壞處,前面已經說過了,這種情況會導致上拉電阻直接接地了,增加了不必要功耗,而且將3.3V電壓直接加在了輸出驅動器的N-MOS上,時間長了之后可能會造成芯片損壞!



    關鍵詞: STM32 單片機 按鍵

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 纳雍县| 文山县| 陇川县| 南漳县| 兰考县| 华安县| 西吉县| 交口县| 云林县| 恭城| 磴口县| 龙里县| 红安县| 金华市| 霍邱县| 绥滨县| 新沂市| 永平县| 峨眉山市| 平阴县| 辽阳市| 延津县| 黔东| 晋中市| 巴东县| 孝感市| 灵石县| 睢宁县| 涞源县| 敖汉旗| 弥勒县| 襄樊市| 大新县| 利津县| 田阳县| 福州市| 舞阳县| 桂平市| 喀什市| 瑞安市| 从江县|