精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32 GPIO的八種工作模式

硬件攻城獅 ? 來源:CSDN技術社區rivencode ? 2024-11-06 09:40 ? 次閱讀

一.GPIO的簡介

GPIO (general purpose input output)是通用輸入輸出端口的簡稱,簡單來說就是軟件可控制的引腳,STM32芯片的GPIO引腳與外部設備連接起來,從而實現與外部通訊、控制以及數據采集的功能。

1.引腳全是GPIO嘛?

答案是否定的,不是所有引腳都是GPIO

STM32F103VET6引腳圖

0a1e04fa-90a2-11ef-a511-92fbcf53809c.png

STM32 芯片的 GPIO 被分成很多組,每組有 16 個引腳,如型號為 STM32F103VET6 型號的芯片有 GPIOA、GPIOB、GPIOC 至 GPIOE 共 5 組 GPIO,例如GPIOA(PA0~PA15 16個引腳)芯片一共 100 個引腳,其中GPIO 就占了一大部分,所有的 GPIO 引腳都有基本的輸入輸出功能

這100個引腳中除了GPIO還有特殊功能的引腳,例如復位引腳,電源引腳…

0a59b82e-90a2-11ef-a511-92fbcf53809c.png

2.GPIO的輸入輸出模式

GPIO可配置8種模式

輸出模式下可控制端口的輸出高低電平,可用于驅動LED、控制蜂鳴器、模擬通信協議輸出時序(SPI I2C 等)等

輸入模式下可讀取端口的高低電平或電壓,用于讀取按鍵輸入,外接模塊電平信號輸入,ADC電壓采集、模擬通信協議接收數據(SPI I2C 等)等

3.GPIO基本結構

0a9048d0-90a2-11ef-a511-92fbcf53809c.png

每個GPIO端口對應16個引腳,例GPIOA(PA0~PA15)

內核cpu就可以通過APB2總線對寄存器讀寫,完成輸出電平和讀取電平的功能

二.GPIO功能框圖

0abe6800-90a2-11ef-a511-92fbcf53809c.png

保護二極管

芯片的引腳電平0~3.3V,部分引腳可以5V,引腳的兩個保護二級管可以防止引腳外部過高或過低的電壓輸入

1.當引腳電壓高于VDD 時,上方的二極管導通

0af28144-90a2-11ef-a511-92fbcf53809c.png

防止過高電壓進入芯片內部燒壞芯片

2.當引腳電壓低于 VSS 時,下方的二極管導通

0b27ef6e-90a2-11ef-a511-92fbcf53809c.png

防止電壓過低,從芯片內部汲取電流

施密特觸發器

0b4c476a-90a2-11ef-a511-92fbcf53809c.png

具有濾波的作用,就是讓通過的電平輸出穩定的高低電平

0b781746-90a2-11ef-a511-92fbcf53809c.png

三.GPIO的8種工作模式

0bb03f54-90a2-11ef-a511-92fbcf53809c.png

1.浮空,上拉,下拉輸入

0bfb5782-90a2-11ef-a511-92fbcf53809c.png

在輸入模式時,施密特觸發器打開,輸出被禁止,可通過輸入數據寄存器 GPIOx_IDR讀取 I/O 狀態。

由于電阻阻值很大這里的上拉下拉輸入都是弱上拉 弱下拉,為了對外部輸入產生很大的影響

上拉輸入:給一個默認的高電平也就是說當沒有外部輸入時默認輸入高電平

0c38f0ba-90a2-11ef-a511-92fbcf53809c.png

下拉輸入:給一個默認的低電平也就是說當沒有外部輸入時默認輸入低電平

0c616db0-90a2-11ef-a511-92fbcf53809c.png

浮空輸入:如果輸入引腳啥都不接,此時輸入電平極易受外界的干擾導致輸入電平不確定,完全由外部的輸入決定。

0c8f2822-90a2-11ef-a511-92fbcf53809c.png

2.模擬輸入

這模式主要為片上外設ADC而配置,從外部讀取模擬信號

模擬信號:測試信號未經過采樣前,均是時間和幅值均是連續的信號稱為模擬信號,例如連續變化的電壓,電流,溫度等等。

數字信號:模擬信號經等間隔“采樣”及幅值量化以后,時間和幅值均是不連續的(離散)的信號,例如0 /1

0cc7a51c-90a2-11ef-a511-92fbcf53809c.png

這里不需要經過施密特濾波,人家本來就要連續變化的模擬量

3.推挽和開漏輸出

● 施密特觸發輸入被激活

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

● 出現在I/O腳上的數據在每個APB2時鐘被采樣到輸入數據寄存器

● 在開漏模式時,對輸入數據寄存器的讀訪問可得到I/O狀態

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

除了模擬輸入的這種模式會關閉數字輸入功能其他七種模式,都可以通過輸入寄存器讀取I/O狀態,例:在模擬I2C實驗中把GPIO的工作模式配置為開漏輸出時同時也可以讀取引腳電平狀態,現在不知道不要緊后面會詳細講解

在輸出模式中,推挽模式時雙 MOS 管以輪流方式工作,輸出數據寄存器 GPIOx_ODR可控制 I/O 輸出高低電平。開漏模式時,只有 N-MOS 管工作,輸出數據寄存器可控制 I/O輸出高阻態或低電平。

1.推挽輸出

0cfccb52-90a2-11ef-a511-92fbcf53809c.png

當輸出寄存器輸出高電平,則引腳也輸出高電平

0d211a2a-90a2-11ef-a511-92fbcf53809c.png

當輸出寄存器輸出低電平,則引腳也輸出低電平

0d51cf8a-90a2-11ef-a511-92fbcf53809c.png

2.開漏輸出

當輸出寄存器輸出高電平,則引腳輸出高阻態

0d8fd0dc-90a2-11ef-a511-92fbcf53809c.png

當輸出寄存器輸出低電平,則引腳輸出低電平

0dbbab6c-90a2-11ef-a511-92fbcf53809c.png

4.復用功能推挽開漏輸出

復用功能模式中,輸出使能,輸出速度可配置,可工作在開漏及推挽模式, 但是輸出信號源于其它外設

輸出數據寄存器 GPIOx_ODR 無效;輸入可用,通過輸入數據寄存器可獲取 I/O 實際狀態,但一般直接用外設的寄存器來獲取該數據信號

這里以串口的發送TX和接收RX引腳為例

串口的發送引腳TX

0dff6adc-90a2-11ef-a511-92fbcf53809c.png

串口的接收引腳RX

0e2d0a32-90a2-11ef-a511-92fbcf53809c.png

這里串口外設不知道是什么不要緊,以后會細講只要指到復用功能的推挽與開漏輸出與普通的推挽與開漏輸出只是輸出的寄存器換成外設的寄存器

四.GPIO的寄存器

通過對 GPIO 寄存器寫入不同的參數,就可以改變 GPIO 的工作模式,要了解具體寄存器時一定要查閱《STM32F10X-中文參考手冊》中對應外設的寄存器說明。

端口配置低寄存器

0e57e374-90a2-11ef-a511-92fbcf53809c.png

在 GPIO 外設中,控制端口高低控制寄存器 CRH 和 CRL 可以配置每個 GPIO 的工作模式和工作的速度,每 4 個位控制一個 IO,CRH 控制端口的高八位,CRL 控制端口的低 8 位,具體的看 CRH 和 CRL 的寄存器描述

端口配置低寄存器

0ea6bbc0-90a2-11ef-a511-92fbcf53809c.png

端口輸出寄存器

0edab6d2-90a2-11ef-a511-92fbcf53809c.png

端口位設置/清除寄存器

0f134b6e-90a2-11ef-a511-92fbcf53809c.png

端口位清除寄存器

0f48e562-90a2-11ef-a511-92fbcf53809c.png

端口位清除寄存器

0f8c5a7c-90a2-11ef-a511-92fbcf53809c.png

總結

大家一定要把八種GPIO的模式都弄清楚原理,為后面學習打下堅實的基礎,本文就到這里。

來源:https://blog.csdn.net/k666499436/article/details/123845466

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2266

    文章

    10876

    瀏覽量

    354930
  • 端口
    +關注

    關注

    4

    文章

    955

    瀏覽量

    32019
  • 引腳
    +關注

    關注

    16

    文章

    1184

    瀏覽量

    50294
  • GPIO
    +關注

    關注

    16

    文章

    1196

    瀏覽量

    51934

原文標題:拒絕枯燥繁瑣!詳解STM32-GPIO端口的八種工作模式 這次真的學會了

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【轉載】STM32GPIO工作模式區別

    在Cortex-M3里,對于GPIO的配置種類有8:(1)GPIO_Mode_AIN 模擬輸入 (2)GPIO_Mode_IN_FLOATING 浮空輸入(3)
    發表于 02-05 14:55

    STM32CubeMX-GPIO工作模式 精選資料分享

    STM32IO口的工作模式:1)、GPIO_Mode_IN_FLOATING:浮空輸入2)、
    發表于 07-22 08:36

    GPIO工作模式介紹

    一、GPIO介紹GPIO:就是一個引腳作為輸入或者輸出。GPIO工作
    發表于 01-24 06:52

    了解STM32輸出模式

    ? 在官方庫文件stm32f10x_gpio.h中對I/O口模式使用枚舉定義模式:typedef enum{
    發表于 02-28 06:54

    概述STM32GPIO的8工作模式

    概述STM32GPIO的8工作模式
    發表于 07-06 17:35 ?26次下載
    概述<b class='flag-5'>STM32</b>中<b class='flag-5'>GPIO</b>的8<b class='flag-5'>種</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    ST MCU_GPIO工作模式詳解。

    補充:N、P型的區別,就是一個為正電壓啟動(NMOS),一個為負電壓啟動(PMOS)GPIO工作模式詳解浮空輸入_IN_FLOATIN
    發表于 10-28 20:51 ?13次下載
    ST MCU_<b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>詳解。

    STM32CubeMX-GPIO工作模式

    STM32IO口的工作模式:1)、GPIO_Mode_IN_FLOATING:浮空輸入2)、
    發表于 11-25 13:36 ?10次下載
    <b class='flag-5'>STM32CubeMX-GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    STM32STM32F4 GPIO模式工作原理詳解

    STM32STM32F4 GPIO模式工作
    發表于 11-26 17:06 ?11次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32</b>F4 <b class='flag-5'>GPIO</b><b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>模式</b>及<b class='flag-5'>工作</b>原理詳解

    STM32的8GPIO輸入輸出模式

    STM32的8GPIO輸入輸出模式參考文章“STM32的8
    發表于 11-26 17:06 ?16次下載
    <b class='flag-5'>STM32</b>的8<b class='flag-5'>種</b><b class='flag-5'>GPIO</b>輸入輸出<b class='flag-5'>模式</b>

    GPIO的8工作模式詳細介紹!

    我們在用STM32這顆MCU的時候,用的最多的也是最基礎的應該就是GPIO外設了,而在STM32的HAL庫中GPIO有8
    發表于 11-30 13:36 ?9次下載
    <b class='flag-5'>GPIO</b>的8<b class='flag-5'>種</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>詳細介紹!

    STM32STM32F4 GPIO模式工作原理詳解

    STM32STM32F4 GPIO模式工作
    發表于 12-04 14:51 ?9次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>STM32</b>F4 <b class='flag-5'>GPIO</b><b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>模式</b>及<b class='flag-5'>工作</b>原理詳解

    HAL庫的GPIO工作模式

    眾所周知,STM32GPIO工作模式,但是打開HAL庫發現,有12中可以供自己設置。先
    發表于 12-05 13:06 ?8次下載
    HAL庫的<b class='flag-5'>GPIO</b><b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    GPIO工作模式

    GPIO是通用輸入/輸出端口的簡稱,GPIO的引腳與外部設備連接,可實現與外部通訊、控制外部硬件或者采集外部硬件數據的功能。GPIO的8輸入模式
    的頭像 發表于 07-02 16:38 ?9925次閱讀
    <b class='flag-5'>GPIO</b>的<b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>工作</b><b class='flag-5'>模式</b>

    STM32的8GPIO模式理解

    最近在看數據手冊的時候,發現STM32GPIO輸入輸出模式的配置種類有8之多
    的頭像 發表于 08-04 14:53 ?921次閱讀

    STM32 GPIO模式工作原理詳解

    圍設備(像控制led亮滅,按鍵控制,軟件模擬IIC等)直觀又簡單的控制。 GPIO的8模式 ?1. 輸入模式: ??(1)上拉輸入模式
    的頭像 發表于 07-22 09:32 ?5773次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>GPIO</b><b class='flag-5'>八</b><b class='flag-5'>種</b><b class='flag-5'>模式</b>及<b class='flag-5'>工作</b>原理詳解