131 1300 0010
其他
當(dāng)前位置: 首頁(yè)>> 元件技術(shù)>>其他>>
  • 導(dǎo)航欄目
  • 二極管
  • 整流橋
  • MOS管
  • 其他
  • STM32單片機(jī)按鍵電路設(shè)計(jì)
    STM32單片機(jī)按鍵電路設(shè)計(jì)
  • STM32單片機(jī)按鍵電路設(shè)計(jì)
  •   發(fā)布日期: 2019-01-17  瀏覽次數(shù): 1,210

    以前GPIO上接的電路都是低電平觸發(fā)的那種,新畫(huà)了個(gè)板子有一個(gè)按鍵設(shè)計(jì)的是高電平觸發(fā),結(jié)果IO口設(shè)置成上拉輸入后,怎么讀都不正確,按鍵電路如圖1。無(wú)奈只能去調(diào)試一下,發(fā)現(xiàn)當(dāng)設(shè)置為上拉輸入后,其ODR(GPIO輸出數(shù)據(jù)寄存器)相應(yīng)的也置為1,百思不得其解。

    STM32單片機(jī)按鍵電路設(shè)計(jì)

     

    圖1 按鍵電路

    于是去看一下GPIO的結(jié)構(gòu)圖:

    STM32單片機(jī)按鍵電路設(shè)計(jì)

    I/O引腳結(jié)構(gòu)圖

    由圖可以發(fā)現(xiàn)其實(shí)輸出寄存器與輸入寄存器之間在I/O引腳處是線與狀態(tài),在GPIO設(shè)置成上位輸入時(shí),其上拉電阻閉合,這時(shí)如果輸出寄存器設(shè)置為0那么在IO口內(nèi)部就會(huì)自己損耗電流,而這些電流的損耗是會(huì)增加功耗的。因此當(dāng)GPIO設(shè)置成上拉輸入時(shí),相應(yīng)的輸出寄存器也設(shè)置為1.

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

    在調(diào)試時(shí)還發(fā)現(xiàn)另一種方法可以讓代碼正常運(yùn)行,就是當(dāng)設(shè)置上拉輸入時(shí),將其輸出值設(shè)置為0,這樣電平就被直接拉低了,按鍵的接地電路基本就不起作用了,但這樣做有一個(gè)壞處,前面已經(jīng)說(shuō)過(guò)了,這種情況會(huì)導(dǎo)致上拉電阻直接接地了,增加了不必要功耗,而且將3.3V電壓直接加在了輸出驅(qū)動(dòng)器的N-MOS上,時(shí)間長(zhǎng)了之后可能會(huì)造成芯片損壞!


  • ·上一篇:
    ·下一篇:
  • 其他關(guān)聯(lián)資訊
    深圳市日月辰科技有限公司
    地址:深圳市寶安區(qū)松崗鎮(zhèn)潭頭第二工業(yè)城A區(qū)27棟3樓
    電話:0755-2955 6626
    傳真:0755-2978 1585
    手機(jī):131 1300 0010
    郵箱:hu@szryc.com

    深圳市日月辰科技有限公司 版權(quán)所有:Copyright?2010-2023 xbquwah.cn 電話:13113000010 粵ICP備2021111333號(hào)