一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

HK32MCU應(yīng)用筆記(十二)| HK32F103xC/D/E的GPIO的應(yīng)用及注意事項

jf_pJlTbmA9 ? 來源:航順芯片 ? 作者:航順芯片 ? 2023-09-18 10:58 ? 次閱讀

HK32F103x/C/D/E是航順芯片推出的中大容量的103系列芯片,而作為32位MCU最常用功能就是GPIO。HK32F103x的每個GPI/O端口有兩個32位配置寄存器(GPIOx_CRL,GPIOx_CRH),兩個32位數(shù)據(jù)寄存器(GPIOx_IDR 和 GPIOx_ODR),一個32位置位/復(fù)位寄存器(GPIOx_BSRR),一個16位復(fù)位寄存器(GPIOx_BRR)和一個32位鎖定寄存器(GPIOx_LCKR)。

每個I/O端口的特定硬件特征,GPIO端口的每個位可以由軟件分別配置成多種模式。

輸入浮空

輸入上拉

輸入下拉

模擬輸入

開漏輸出

推挽式輸出

推挽式復(fù)用功能

開漏復(fù)用功能

每個I/O端口位可以自由編程,然而必須按照32位字訪問I/O端口寄存器(不允許半字或字節(jié)訪問)。GPIOx_BSRR 和 GPIOx_BRR 寄存器允許對任何GPIO寄存器進(jìn)行讀/更改的獨立訪問;這樣,在讀和更改訪問之間產(chǎn)生IRQ時不會發(fā)生危險。每個GPIO管腳都可以由軟件配置成輸出(推拉或開路)、輸入(帶或不帶上拉或下拉)或其它的外設(shè)功能端口。多數(shù) GPIO 管腳都與數(shù)字或模擬的外設(shè)共用。所有的 GPIO 管腳都有大電流通過能力。在需要的情況下,I/O 管腳的外設(shè)功能可以通過一個特定的操作鎖定,以避免意外的寫入 I/O 寄存器。

下圖就是I/O 端口位的基本結(jié)構(gòu):

wKgZomUD66KAJZR6AAJgQi9brtw376.png

5伏兼容 I/O 端口位的基本結(jié)構(gòu)

wKgaomUD66SAHGXvAAJekPeb_O4112.png

注意:VDD_FT 對5伏容忍I/O腳是特殊的,它與VDD不同

端口位配置表

wKgaomUD66WAMjjnAAFF94ESWMI754.png

輸出模式位

wKgZomUD66eAY9IMAACCDdzD3S0678.png

單獨的位設(shè)置或位清除

當(dāng)對GPIOx_ODR的個別位編程時,軟件不需要禁止中斷:在單次APB2寫操作里,可以只更改一個或多個位。這是通過對“置位/復(fù)位寄存器”(GPIOx_BSRR,復(fù)位是 GPIOx_BRR)中想要更改的位寫’1’來實現(xiàn)的。沒被選擇的位將不被更改。

復(fù)用功能(AF)

使用默認(rèn)復(fù)用功能前必須對端口位配置寄存器編程。

● 對于復(fù)用的輸入功能,端口必須配置成輸入模式(浮空、上拉或下拉)且輸入引腳必須由外部驅(qū)動

注意:也可以通過軟件來模擬復(fù)用功能輸入引腳,這種模擬可以通過對 GPIO 控制器編程來實現(xiàn)。此時,端口應(yīng)當(dāng)被設(shè)置為復(fù)用功能輸出模式。顯然,這時相應(yīng)的引腳不再由外部驅(qū)動,而是通過 GPIO 控制器由軟件來驅(qū)動。

● 對于復(fù)用輸出功能,端口必須配置成復(fù)用功能輸出模式(推挽或開漏)。

● 對于雙向復(fù)用功能,端口位必須配置復(fù)用功能輸出模式(推挽或開漏)。這時,輸入驅(qū)動器被配置成浮空輸入模式。

如果把端口配置成復(fù)用輸出功能,則引腳和輸出寄存器斷開,并和片上外設(shè)的輸出信號連接。如果軟件把一個GPIO腳配置成復(fù)用輸出功能,但是外設(shè)沒有被激活,它的輸出將不確定。

輸入配置

當(dāng) I/O 端口配置為輸入時:

● 輸出緩沖器被禁止

● 施密特觸發(fā)輸入被激活

● 根據(jù)輸入配置(上拉,下拉或浮動)的不同,弱上拉和下拉電阻被連接

● 出現(xiàn)在I/O腳上的數(shù)據(jù)在每個APB2時鐘被采樣到輸入數(shù)據(jù)寄存器

● 對輸入數(shù)據(jù)寄存器的讀訪問可得到I/O狀態(tài)

輸出配置

當(dāng) I/O 端口被配置為輸出時:

● 輸出緩沖器被激活

─ 開漏模式:輸出寄存器上的’0’激活 N-MOS,而輸出寄存器上的’1’將端口置于高阻狀態(tài)(P-MOS 從不被激活)。

─ 推挽模式:輸出寄存器上的’0’激活 N-MOS,而輸出寄存器上的’1’將激活 P-MOS。

● 施密特觸發(fā)輸入被激活

● 弱上拉和下拉電阻被禁止

● 出現(xiàn)在I/O腳上的數(shù)據(jù)在每個APB2時鐘被采樣到輸入數(shù)據(jù)寄存器

● 在開漏模式時,對輸入數(shù)據(jù)寄存器的讀訪問可得到I/O狀態(tài)

● 在推挽式模式時,對輸出數(shù)據(jù)寄存器的讀訪問得到最后一次寫的值。

復(fù)用功能配置

當(dāng) I/O 端口被配置為復(fù)用功能時:

● 在開漏或推挽式配置中,輸出緩沖器被打開

● 內(nèi)置外設(shè)的信號驅(qū)動輸出緩沖器(復(fù)用功能輸出)

● 施密特觸發(fā)輸入被激活

● 弱上拉和下拉電阻被禁止

● 在每個APB2時鐘周期,出現(xiàn)在I/O腳上的數(shù)據(jù)被采樣到輸入數(shù)據(jù)寄存器

● 開漏模式時,讀輸入數(shù)據(jù)寄存器時可得到I/O口狀態(tài)

● 在推挽模式時,讀輸出數(shù)據(jù)寄存器時可得到最后一次寫的值

模擬輸入配置

當(dāng) I/O 端口被配置為模擬輸入配置時:

● 輸出緩沖器被禁止

● 禁止施密特觸發(fā)輸入,實現(xiàn)了每個模擬I/O引腳上的零消耗。施密特觸發(fā)輸出值被強置為’0’

● 弱上拉和下拉電阻被禁止

● 讀取輸入數(shù)據(jù)寄存器時數(shù)值為’0’

下面就HK32F103xC/D/E在操作上需要應(yīng)用開發(fā)者注意的。

用戶在使用HK32F103xC/D/E時,使用軟件循環(huán)產(chǎn)生定時,用GPIO翻轉(zhuǎn)模擬時序,發(fā)現(xiàn)跟友商不一致。這是我們設(shè)計跟友商不一樣。

解決方法如下:

不開 Cache,HK32F103xCxDxE 效率低一點。

打開 Cache,HK32F103xCxDxE 效率明顯提高。

以上有關(guān)寄存器的介紹可以參考我們HK的HK32F103xC/D/E的應(yīng)用手冊。

來源:航順芯片

審核編輯:湯梓紅

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

    關(guān)注

    146

    文章

    17718

    瀏覽量

    358357
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1238

    瀏覽量

    53326
  • 航順芯片
    +關(guān)注

    關(guān)注

    1

    文章

    110

    瀏覽量

    23069
收藏 人收藏

    評論

    相關(guān)推薦

    HK32MCU應(yīng)用筆記(二十)| HK32F103xC/D/E USB枚舉情況分析(二)

    HK32MCU應(yīng)用筆記(二十)| HK32F103xC/D/E USB枚舉情況分析(二)
    的頭像 發(fā)表于 09-18 10:58 ?772次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(二十)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b> USB枚舉情況分析(二)

    HK32MCU應(yīng)用筆記(十九)| HK32F103xC/D/E USB枚舉情況分析

    HK32MCU應(yīng)用筆記(十九)| HK32F103xC/D/E USB枚舉情況分析
    的頭像 發(fā)表于 09-18 10:58 ?1018次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十九)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b> USB枚舉情況分析

    HK32MCU應(yīng)用筆記(十八)| HK32F103xC/D/E-DAC的應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十八)| HK32F103xC/D/E-DAC的應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1373次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十八)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-DAC的應(yīng)用及<b class='flag-5'>注意事項</b>

    HK32MCU應(yīng)用筆記(十七)| HK32F103xC/D/E-flash擦寫應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十七)| HK32F103xC/D/E-flash擦寫應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1421次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十七)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-flash擦寫應(yīng)用及<b class='flag-5'>注意事項</b>

    HK32MCU應(yīng)用筆記(十六)| HK32F103xC/D/E-Timer的應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十六)| HK32F103xC/D/E-Timer的應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1047次閱讀

    HK32MCU應(yīng)用筆記(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨配置

    HK32MCU應(yīng)用筆記(十五)| HK32F103xC/D/E-同步注入模式下,ADC2工作狀態(tài)不能單獨配置
    的頭像 發(fā)表于 09-18 10:58 ?817次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十五)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-同步注入模式下,ADC2工作狀態(tài)不能單獨配置

    HK32MCU應(yīng)用筆記(十四)| HK32F103x/C/D/E-TIM1的應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十四)| HK32F103x/C/D/E-TIM1的應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1082次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十四)| <b class='flag-5'>HK32F103</b>x/C/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-TIM1的應(yīng)用及<b class='flag-5'>注意事項</b>

    HK32MCU應(yīng)用筆記(十三)| HK32F103xC/D/E-ADC的應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十三)| HK32F103xC/D/E-ADC的應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1393次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十三)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>-ADC的應(yīng)用及<b class='flag-5'>注意事項</b>

    HK32MCU應(yīng)用筆記(十一)| HK32F103xC/D/E的flash讀保護(hù)應(yīng)用及注意事項

    HK32MCU應(yīng)用筆記(十一)| HK32F103xC/D/E的flash讀保護(hù)應(yīng)用及注意事項
    的頭像 發(fā)表于 09-18 10:58 ?1344次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十一)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的flash讀保護(hù)應(yīng)用及<b class='flag-5'>注意事項</b>

    HK32MCU應(yīng)用筆記(十)| HK32F103xC/D/E的ADC常規(guī)和注入通道同時觸發(fā)時的處理機制

    HK32MCU應(yīng)用筆記(十)| HK32F103xC/D/E的ADC常規(guī)和注入通道同時觸發(fā)時的處理機制
    的頭像 發(fā)表于 09-18 10:58 ?901次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(十)| <b class='flag-5'>HK32F103xC</b>/<b class='flag-5'>D</b>/<b class='flag-5'>E</b>的ADC常規(guī)和注入通道同時觸發(fā)時的處理機制

    HK32MCU應(yīng)用筆記(九)| HK32F103x8xB系列CAN的應(yīng)用解決方案

    HK32MCU應(yīng)用筆記(九)| HK32F103x8xB系列CAN的應(yīng)用解決方案
    的頭像 發(fā)表于 09-18 10:59 ?955次閱讀

    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片調(diào)試心得

    HK32MCU應(yīng)用筆記(六)| HK32MCU芯片調(diào)試心得
    的頭像 發(fā)表于 09-18 10:59 ?986次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(六)| <b class='flag-5'>HK32MCU</b>芯片調(diào)試心得

    HK32MCU應(yīng)用筆記(五)| 關(guān)于應(yīng)用HK32F030延時效率問題

    HK32MCU應(yīng)用筆記(五)| 關(guān)于應(yīng)用HK32F030延時效率問題
    的頭像 發(fā)表于 09-18 11:00 ?891次閱讀

    HK32MCU應(yīng)用筆記(四)| 關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯誤

    HK32MCU應(yīng)用筆記(四)| 關(guān)于老版本HK32F103串口USART偶爾出現(xiàn)數(shù)據(jù)錯誤
    的頭像 發(fā)表于 09-18 11:00 ?1288次閱讀

    HK32MCU應(yīng)用筆記(一)| HK32F030X系列在PH測量筆的應(yīng)用

    HK32MCU應(yīng)用筆記(一)| HK32F030X系列在PH測量筆的應(yīng)用
    的頭像 發(fā)表于 09-18 11:00 ?1623次閱讀
    <b class='flag-5'>HK32MCU</b>應(yīng)<b class='flag-5'>用筆記</b>(一)| <b class='flag-5'>HK32F</b>030X系列在PH測量筆的應(yīng)用