亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

您現在的位置是:首頁 > 技術閱讀 >  GPIO 八種工作模式詳解

GPIO 八種工作模式詳解

時間:2024-02-08

擊上方“程序員小哈”,選擇“星標公眾號

干貨福利,第一時間送達!

大家好,我是程序員小哈。

今天給大家分享一下 GPIO 基礎,參考資料:

STM32F1xx 官方資料:

《STM32中文參考手冊V10》-第8章通用和復用功能IO(GPIO和AFIO)

GPIO 是通用輸入/輸出端口的簡稱,是 STM32 可控制的引腳。GPIO 的引腳與外部硬件設備連接,可實現與外部通訊、控制外部硬件或者采集外部硬件數據的功能。

STM32的八種GPIO口模式

1) GPIO_Mode_AIN 模擬輸入;
2) GPIO_Mode_IN_FLOATING 浮空輸入;
3) GPIO_Mode_IPD 下拉輸入;
4) GPIO_Mode_IPU 上拉輸入;

5) GPIO_Mode_Out_OD 開漏輸出;
6) GPIO_Mode_Out_PP 推挽輸出;
7) GPIO_Mode_AF_OD 復用開漏輸出;
8) GPIO_Mode_AF_PP 復用推挽輸出。

STM32 普通 GPIO 內部邏輯圖

保護二極管:IO引腳上下兩邊兩個二極管用于防止引腳外部過高、過低的電壓輸入。當引腳電壓高于VDD時,上方的二極管導通;當引腳電壓低于VSS時,下方的二極管導通,防止不正常電壓引入芯片導致芯片燒毀。也叫鉗位二極管。

P-MOS管和N-MOS管:由P-MOS管和N-MOS管組成的單元電路使得GPIO具有“推挽輸出”和“開漏輸出”的模式。

TTL肖特基觸發器:信號經過觸發器后,模擬信號轉化為0和1的數字信號。但是,當GPIO引腳作為ADC采集電壓的輸入通道時,用其“模擬輸入”功能,此時信號不再經過觸發器進行TTL電平轉換。(可以理解為一個比較器,大于某個值是1,小于某個值是0)

查看《STM32中文參考手冊V10》中的GPIO的表格時,會看到有“FT”一列,這代表著這個GPIO口時兼容3.3V和5V的;如果沒有標注“FT”,就代表著不兼容5V。比如STM32F103VET6的GPIOE口那一組全部兼容5V,其他組是部分兼容5V。

備注:導通路徑為黃色部分。

1、模擬輸入 GPIO_Mode_AIN

此模式可以檢測外部輸入的模擬電壓,可以檢測電壓值,只要不高于Vcc即可。

2、浮空輸入 GPIO_MODE_IN_FLOATING

此模式最常用的是檢測按鍵,可以接收高低電平。但容易被干擾。

3、下拉輸入GPIO_Mode_IPD

此模式檢測到電平默認為低,可以檢測到由低到高的電平變化。

4、上拉輸入GPIO_Mode_IPU

此模式檢測到電平默認為高,可以檢測到由高到低的電平變化。

5、開漏輸出GPIO_Mode_Out_OD

開漏輸出用于輸出低電平,高電平靠外部上拉電阻電壓決定,適用于快速切換電壓的外部電路結構。

6、推挽輸出GPIO_Mode_Out_PP

推挽輸出用于輸出高低電平,是最常用的模式

7、復用開漏輸出GPIO_Mode_AF_OD

復用 IIC 時候選擇復用開漏輸出,因為開漏輸出可以“線與”。

8、復用推挽輸出GPIO_Mode_AF_PP

其他復用比如 SPI 等可以選擇復用推挽輸出。


什么是推挽結構和推挽電路?

推挽結構一般是指兩個參數相同的三極管或MOS管分別受兩互補信號的控制,總是在一個三極管或MOS管導通的時候另一個截止。高低電平由輸出電平決定。

推挽輸出和開漏輸出

左側為推挽輸出,可以輸出高低電平。右側為開漏輸出,只能輸出低電平,高電平靠外部上拉電阻決定。

圖中所示為三極管,也可以叫開集輸出(集電極開路輸出),開漏輸出是當這個管子為MOS管,漏極開路輸出,叫開漏輸出。

推挽輸出:上面三級管導通,輸出高電平,下面三極管導通,輸出低電平。

開漏輸出:三極管導通輸出低電平,三極管截止是高阻態,電平由外部上拉電阻決定。

推挽輸出高電平(向負載推流):


推挽輸出低電平(從負載拉流):

·················· END ··················

點擊關注公眾號,免費領學習資料


分享 ????  點贊 ????  在看 ?? 

以“三連”行動支持優質內容!

“閱讀原文”了解小哈哥的知識星球,
我們一起成長
主站蜘蛛池模板: 大洼县| 彭州市| 璧山县| 阿克陶县| 长汀县| 沅陵县| 辽宁省| 保康县| 绩溪县| 宁晋县| 慈利县| 电白县| 观塘区| 图木舒克市| 三门峡市| 新干县| 安丘市| 马山县| 龙江县| 沂水县| 丹寨县| 合肥市| 宁波市| 湟中县| 纳雍县| 江阴市| 汽车| 沁水县| 龙井市| 桐庐县| 东方市| 阳城县| 梨树县| 前郭尔| 额济纳旗| 安阳县| 金沙县| 蕲春县| 岚皋县| 祁阳县| 海阳市|