STM32 GPIO配置 點亮LED燈

本次是基于STM32F407ZET6做一個GPIO配置,實現點燈實驗。

新建文件

LED.c、LED.h文件,將其封裝到Driver文件中。

雙擊Driver文件將LED.c添加進來

編寫頭文件,這里注意需要將Driver頭文件聲明一下。

在LED.c、main.c里面引入頭文件LED.h

LED初始化

LED初始化就是對GPIO初始化。以后用到GPIO引腳都需要對其配置(按鍵KEY? ?蜂鳴器Buzzer)

LED_Init? ? ?LED初始化? ? ?這里我們跟著庫函數直接復制了。

找到STM32F407的庫函數手冊

將下面框住的部分復制到 LED.c中

定義結構體變量

GPIO_InitTypeDef  GPIO_InitStructure;

配置時鐘,對其GPIO引腳使用必須開啟其對應的引腳時鐘,這里開啟的GPIO G族的時鐘,因為led燈的引腳是GPIOG族的(根據電路原理圖)

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOG, ENABLE);

選擇需要配置的引腳

這里需要看電路原理圖,來知道小燈對應芯片的那個引腳

GPIO_InitStructure.GPIO_Pin =;

Ctrl + F搜索LED1找到其位置,根據原理圖得知,對應PG13引腳,也就是GPIO G族的13號引腳

這樣我們就可以編寫代碼了,我們配置13號引腳使其點亮LED1燈。

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;

選擇工作模式

這里選擇輸出模式

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;

對其F12 goto過去可以看到其工作模式的種類

GPIO_Mode_IN? ? 輸入模式

GPIO_Mode_OUT 輸出模式

GPIO_Mode_AF? ? 復用輸入

GPIO_Mode_AN? ? 模擬輸入

選擇輸出模式

這里選擇推挽輸出

GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

跳轉過去可以看到都有什么類型的輸出模式

PP? ? ?推挽輸出模式

OD? ? 開漏輸出模式

還有復用推挽和復用開漏模式。

選擇輸入模式

這里選擇浮空輸入。

GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;

跳轉過去可以看到都有什么輸入模式

NOPULL? ? 浮空

UP? ? ? ? ? ? ?上拉

DOWN? ? ? ?下拉

配置速度

配置高低電平切換的速度,這里為100MHz。

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;

跳轉過去可以看到都有多少Hz的速度

底下是宏定義

2MHz? ? ?Low_Speed? 低速

25MHz? ?Medium_Speed? 中速

50MHz? ?Fast_Speed? ?快速

100MHz? High_Speed? 高速

GPIO初始化

帶Init后綴的全是初始化函數,這里是初始化GPIO? G族的引腳。

GPIO_Init(GPIOG, &GPIO_InitStructure);

點燈操作

根據電路圖得知,引腳輸出低電平時,LED燈才會亮起? ?因為左邊接VDD3.3V屬于高電勢,LED0需要輸出低電平才會產生電勢差使電流流動。

我們這樣配置完GPIO是默認輸出低電平的,所以現在上電編譯下載就會讓LED1燈亮,但為了后續的模塊操作,我們在初始化的時候將所有的燈關閉也就是全置為高電平。

GPIO_SetBits函數可以將引腳置高電平。

先將LED_Init在頭文件里聲明一下

然后我們在main.c里做電燈操作。

GPIO_ResetBits 函數可以將引腳置低電平

將LED_Init寫到主函數里。

編譯下載實現點亮LED1燈效果。

資源包:

百度網盤:KEIL
鏈接: https://pan.baidu.com/s/1DZZ_kP7jXLYeisntS9PZzA?pwd=6ujf 提取碼: 6ujf

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/67092.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/67092.shtml
英文地址,請注明出處:http://en.pswp.cn/web/67092.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

window保存好看的桌面壁紙

1、按下【WINR】快捷鍵調出“運行”窗口,輸入以下命令后回車。 %localappdata%\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets 2、依次點擊【查看】【顯示】,勾選【隱藏的項目】,然后按【CtrlA】全部…

TCP 三次握手四次揮手

目錄 TCP 三次握手 1. SYN (Synchronize:同步) 2. SYN-ACK (Synchronize Acknowledge:同步確認) 3. ACK (Acknowledge:確認) 為什么是三次而不是兩次或四次? 三次握手的作用 TCP 四次揮手 第一次揮手:客戶端發送 FIN …

C語言初階牛客網刷題—— HJ34 圖片整理【難度:中等】

1. 題目描述 牛客網在線OJ鏈接 Lily上課時使用字母數字圖片教小朋友們學習英語單詞,每次都需要把這些圖片按照大小(ASCII碼值從小到大)排列收好。請大家給Lily幫忙,通過C語言解決。 輸入描述:Lily使用的圖片包括 “A…

MVCC底層原理實現

MVCC的實現原理 了解實現原理之前,先理解下面幾個組件的內容 1、 當前讀和快照讀 先普及一下什么是當前讀和快照讀。 當前讀:讀取數據的最新版本,并對數據進行加鎖。 例如:insert、update、delete、select for update、 sele…

python實現http文件服務器訪問下載

//1.py import http.server import socketserver import os import threading import sys# 獲取當前腳本所在的目錄 DIRECTORY os.path.dirname(os.path.abspath(__file__))# 設置服務器的端口 PORT 8000# 自定義Handler,將根目錄設置為腳本所在目錄 class MyHTT…

Cpp::靜態 動態的類型轉換全解析(36)

文章目錄 前言一、C語言中的類型轉換二、為什么C會有四種類型轉換?內置類型 -> 自定義類型自定義類型 -> 內置類型自定義類型 -> 自定義類型隱式類型轉換的坑 三、C強制類型轉換static_castreinterpret_castconst_castdynamic_cast 四、RTTI總結 前言 Hell…

2024年終總結:技術成長與突破之路

文章目錄 前言一、技術成長:菜鳥成長之路1. 學習與實踐的結合2. 技術分享與社區交流 二、生活與事業的平衡:技術之外的思考1. 時間管理與效率提升2. 技術對生活的積極影響 三、突破與展望:未來之路1. 技術領域的突破2. 未來規劃與目標 四、結…

ComfyUI實現老照片修復——AI修復老照片(ComfyUI-ReActor / ReSwapper)解決天坑問題及加速pip下載

AI修復老照片,試試吧,不一定好~~哈哈 2023年4月曾用過ComfyUI,當時就感慨這個工具和虛幻的藍圖很像,以后肯定是專業人玩的。 2024年我寫代碼去了,AI做圖沒太關注,沒想到,現在ComfyUI真的變成了工…

思科交換機telnet配置案例

目錄 1.telnet簡述2.網絡拓撲3.設備說明4.網絡配置4.1 電腦PC ip設置4.2 網絡交換機telnet配置 5.小結 1.telnet簡述 Telnet是遠程登錄服務的一個協議,該協議定義了遠程登錄用戶與服務器交互的方式。它允許用戶在一臺聯網的計算機上登錄到一個遠程分時系統中&#…

WPS數據分析000006

一、排序 開始→ 排序 同文件→選項→自定義序列→輸入序列 二、篩選 高級篩選 條件區域要與列表區域一樣。 三、條件格式

vofa++使用方法

控件區可以添加控件用來啊多樣顯示 點擊一個控件然后右鍵可以選擇要添加顯示的數據,點all表全部顯示, 點auto可以自動布局 要用控件需要選擇協議,不知道協議具體格式可以點擊問號看看,并且最好用printf重定義來實現 比如我要實現F…

達夢拷貝DM_HOME的復制安裝

近期一個項目需求,需要在沒有安裝包的情況下,將達夢數據庫安裝到虛機上(生產機上安裝了達夢),故采用直接打包生產機DM_HOME的方式拷貝至虛機,再依次執行達夢的部分指令完成安裝。以下為驗證的步驟&#xff…

tomcat的accept-count、max-connections、max-threads三個參數的含義

tomcat的accept-count、max-connections、max-threads三個參數的含義 tomcat的accept-count、max-connections、max-threads三個參數的含義 max-connections:最大連接數 最大連接數是指,同一時刻,能夠連接的最大請求數 需要注意的是&#x…

ui文件轉py程序的工具

源博客連接: PyCharm中利用外部工具uic轉成的py文件,里面全是C代碼,并非python類型的代碼,導致大量報錯。。。_pyside6-uic為什么把ui轉為了c-CSDN博客 如果想把ui文件轉為py文件,首先設置pycharm的外部工具&#xf…

hedfs和hive數據遷移后校驗腳本

先談論校驗方法,本人騰訊云大數據工程師。 1、hdfs的校驗 這個通常就是distcp校驗,hdfs通過distcp遷移到另一個集群,怎么校驗你的對不對。 有人會說,默認會有校驗CRC校驗。我們關閉了,為什么關閉?全量遷…

61,【1】BUUCTF WEB BUU XSS COURSE 11

進入靶場 左邊是吐槽,右邊是登錄,先登錄試試 admin 123456 admiin# 123456 admin"# 123456 不玩了,先去回顧下xss 回顧完就很尷尬了,我居然用SQL的知識去做xss的題 重來 吐槽這里有一個輸入框,容易出現存儲型…

海外問卷調查如何影響企業的經營?在品牌建設中有何指導意義?

市場調查的定義:通過科學的方法,有目的地、系統地搜集整理一些市場信息,其目的在于了解當下市場現狀和發展前景,為企業生產和品牌打造提供一些科學的指導意見,這是任何大企業、中小企業、初創企業都必須重視的一個重要…

STM32新建不同工程的方式

新建工程的方式 1. 安裝開發工具 MDK5 / keil52. CMSIS 標準3. 新建工程3.1 寄存器版工程3.2 標準庫版工程3.3 HAL/LL庫版工程3.4 HAL庫、LL庫、標準庫和寄存器對比3.5 庫開發和寄存器的關系 4. STM32CubeMX工具的作用 1. 安裝開發工具 MDK5 / keil5 MDK5 由兩個部分組成&#…

idea maven本地有jar包,但還要從遠程下載

idea 中,java 工程執行 maven reimport,報jar報無法下載。 我奇了個怪,我明明在本地倉庫有啊,你非得從遠程下載? 我從供應商那里拿來的,遠程當然沒有了。 這太奇葩了吧,折騰好久不行。 后來…

springboot 調用 c++生成的so庫文件

一、創建c文件 SoTest.h #pragma once class SoTest {int Add(int a,int b); };SoTest.cpp #include "SoTest.h"int SoTest::Add(int a, int b) {return a b; }二、創建so文件 /home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so 三、java代碼 Maven依…