stm32學習1之GPIO口

2021-10-04 17:52:17 字數 2157 閱讀 6101

ps:使用的32型號是.stm32f407zgt

原本我是不打算繼續更32的,但是最近的做的一些東西需要用到arm。所以想想就複習一下32吧!畢竟當初學的也確實不咋地。

32系列我不會用很官方的話來講,我會用自己的理解最粗暴直白的表達出來。有什麼錯誤歡迎指正,企鵝:918619587

首先我們解釋一下什麼是gpio,gpio就是通用輸入輸出。這莫理解可能有點抽象,直接上例子吧!最簡單的點亮led燈實驗。

首先我們來看一下32開發板的部分原理圖:

現在我們要點亮led4這個燈,通過上面這個配套的原理圖可以看到led4對應的引腳為pc0。這個led4是上面呢,它屬於片上外設。我們要使用這個燈,是不是首先要喚醒它啊,就像你使用電磁爐一樣,是不是要先插電,然後按下開機才能使用啊。所以片上外設也一樣我們在使用它之前要先給他喚醒我們接著看一下裝置概述

從這個圖中標註部分可以看到,引腳pc0對應的是gpioc,而gpioc掛在ahb1這個時間線上,所以你要喚醒這個串列埠,那麼就喚醒這個時間線(ahb1).我們來看一下ahb1

在上圖中gpioc對應的暫存器是2,所以我們要開ahb1這條線上的編號為2的暫存器。

這樣我們就給io口喚醒了,然後我們要使用io口就要進行配置,就像螺絲刀一樣,手柄是不變的,但是不同型號的螺絲要用不同的刀頭,所以我們要配置自己需要的刀頭。

我們來看一下gpio的配置:

我們看一下第乙個輸出模式,這裡我們選擇通用,注意到這裡是兩位控制乙個埠模式,足以到gpioc對應的是pc0,所以0x2=0,我們選擇0,1這兩個(假設是pc10,那就是10x2=20,使用的是19,20這兩個)

然後我們看下乙個:

我們選擇輸出推挽,看暫存器根據pc0,則是第0號暫存器控制,只需要給第0號暫存器置0即可

輸出速度當然選擇最快的了,因為是pc0引腳所以是0這個暫存器,因為是兩位控制所以是01這兩個暫存器,選擇快速,將01這兩個暫存器分別置為1,0即可

上下拉我們選擇無上下拉即可

接下來我們看一下**:

//開時鐘

rcc->ahb1enr |= (1<<2);

//輸出模式

gpioc->moder &= ~(0x3<<0);

gpioc->moder |= (0x1<<0);

//輸出型別

gpioc->otyper &= ~(0x1<<0);

//輸出速度

gpioc->ospeedr &= ~(0x3<<0);

gpioc->ospeedr |= (0x2<<0);

//無上下拉

gpioc->pupdr &= ~(0x3<<0);

將**放到main函式裡面這就是第乙個最簡單的程式,led4亮燈。

其中可能有很多不明白,不明白就先記住,後面就慢慢的理解了。

你學會了嗎?根據我提供的你可以配置led1,2,3嗎?做乙個流水燈?

-end-

STM32之GPIO有啟發1

好了,大家可能接觸過51微控制器,但是再接觸stm32後就感覺gpio不像以前那樣了,不要迷惑,為什麼要一樣呢,它又不是51。那gpio得內部結構圖我覺得就沒有必要看了,咱就單從功能層面來了解吧 原因之一本人對電路不是很來電 gpio集中模式如下 現在每種模式都說一下也記不住 其實我也不全知道 以後...

STM32學習筆記(二) GPIO口工作原理

stm32每個io口具有7個暫存器來控制,每個io口都可以自由進行程式設計控制,我們程式設計實際上控制的是通過控制那7個暫存器來控制我們的io口,我們可以通過程式設計控制io口,把io口配置成如下八種模式 1 輸入浮空2 輸入上拉3 輸入下拉4 模擬輸入5 開漏輸出 6 推挽輸出 7 推挽式復用功能...

stm32學習筆記 GPIO

2011 03 06 15 10 stm32基本上每個引腳都有8種配置模式 浮空輸入 帶弱上拉輸入 帶弱下拉輸入 模擬輸入 推挽輸出 開漏輸出 復用推挽輸出 復用開漏輸出 通常有5種方式使用某個引腳功能,它們的配置方式如下 1 作為普通gpio輸入 根據需要配置該引腳為浮空輸入 帶弱上拉輸入或帶弱下...