日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

stm32之GPIO

發布時間:2025/4/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 stm32之GPIO 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

      • GPIO工作方式
      • GPIO的輸入工作模式
      • GPIO的輸出工作模式
        • 配置寄存器GPIOx_CRL/CRH
        • 數據寄存器GPIOx_IDR/ODR
        • 端口位設置/清除寄存器GPIOx_BSRR
        • 清除寄存器GPIOx_BRR
      • 庫函數版本
        • 1、初始化函數
        • 2.讀取電平函數
        • 3.設置輸出函數
        • 問題:如果頭文件出現如圖x號
      • 寄存器版

STM32 的 IO 口可以由軟件配置成如下 8 種模式:
1、輸入浮空
2、輸入上拉
3、輸入下拉
4、模擬輸入
5、開漏輸出
6、推挽輸出
7、推挽式復用功能
8、開漏復用功能

(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 的很多 IO 口都是 5V 兼容(FT)的(5v可以被識別為高電平),這些 IO 口在與 5V 電平的外設連接的時候很有優勢,具體哪些 IO 口是 5V 兼容的,可以從該芯片的數據手冊管腳描述章節查到(I/O Level 標 FT 的就是 5V 電平兼容的)。

GPIO工作方式

4種輸入模式:
輸入浮空
輸入上拉
輸入下拉
模擬輸入

4種輸出模式
開漏輸出
開漏復用功能
推挽式輸出
推挽式復用功能

3種最大翻轉速度:
-2MHZ
-10MHZ
-50MHZ

GPIO的輸入工作模式


兩個開關不接通


上開關接通

下拉電阻連上


常用于AD轉換等

GPIO的輸出工作模式


內部沒有驅動能力

區別是由外設模塊決定輸出

推挽方式

推挽輸出
可以輸出強高低電平,連接數字器件
開漏輸出
只可以輸出強低電平,高電平要靠外部電阻拉高,輸出端相當于三極管的集電極,要得到高電平狀態需要山上拉電阻

配置寄存器GPIOx_CRL/CRH

GPIOx_CRL/CRH每四個位控制一個IO口,CRL控制標號為0-7的口,CRH控制標號為8-15的口

單個GPIO口的配置

數據寄存器GPIOx_IDR/ODR

IDR 是一個端口輸入數據寄存器,只用了低 16 位。該寄存器為只讀寄存器,并且只能以
16 位的形式讀出。

要想知道某個 IO 口的狀態,你只要讀這個寄存器,再看某個位的狀態就可以了。

ODR 是一個端口輸出數據寄存器,也只用了低 16 位。該寄存器為可讀寫,從該寄存器讀
出來的數據可以用于判斷當前 IO 口的輸出狀態。

端口位設置/清除寄存器GPIOx_BSRR



設為0的位是不變的
和ODR不同。ODR如果設置為0,則是設置為0;

清除寄存器GPIOx_BRR


好了,寄存器學完了
開始點燈!

庫函數版本

找到硬件連接位置

gpio頭文件函數


1、初始化函數




第一個參數指定io口
第二個定義速度
第三個定義模式


Pin參數

speed參數

mode參數

2.讀取電平函數

3.設置輸出函數


跑馬燈程序
1.使能IO口時鐘,調用RCC_APB2PeriphClockCmd函數
不同的IO組調用的時鐘使能函數不同
!!操作IO口之前都要使能相應的時鐘,否則無法使用


1.RCC_APB2Periph參數

這里使能GPIOA口,將GPIOA的參數名RCC_APB2Periph_GPIOA引入就行了
2.NewState參數

使能或者不使能

程序:

或者

2.初始化IO口
調用函數GPIO_Init()

選擇推挽輸出

引腳選擇A8和D2

選擇50mhz
程序:

問題:如果頭文件出現如圖x號

說明沒有把頭文件路徑加進去

添加頭文件路徑


添加一下路徑就行了

3.設置io口輸出電平
GPIO_SetBits()設置高電平

GPIO_ResetBits()設置低電平
參數傳入IO組和引腳
程序:

主函數
main

編譯沒問題

下載


ok

寄存器版

步驟
1.使能IO口時鐘
2.初始化Io口模式
3.操作IO口

1.使能IO口時鐘
配置寄存器
RCC_APB2ENR

總結

以上是生活随笔為你收集整理的stm32之GPIO的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。