STM32 GPIO使用

來源:互聯網
上載者:User

1. 將硬體環境設定為宏定義,方便硬體環境修改:

設定包含三項:GPIO連接埠、GPIO引腳號和GPIO連接埠時鐘。樣本如下

#define LED1_PIN              GPIO_Pin_10#define LED1_GPIO_PORT        GPIOH#define LED1_GPIO_CLK         RCC_AHB1Periph_GPIOH#define LED2_PIN              GPIO_Pin_11#define LED2_GPIO_PORT        GPIOH#define LED2_GPIO_CLK         RCC_AHB1Periph_GPIOH#define LED3_PIN              GPIO_Pin_11#define LED3_GPIO_PORT        GPIOD#define LED3_GPIO_CLK         RCC_AHB1Periph_GPIOD
其中GPIO_Pin_10 /GPIO_Pin_11、GPIOH / GPIOD 、RCC_AHB1Periph_GPIOH / RCC_AHB1Periph_GPIOD這些都是STM32庫中的宏定義。


2. 開啟GPIO外設時鐘

RCC_AHB1PeriphClockCmd (LED1_GPIO_CLK | LED2_GPIO_CLK | LED3_GPIO_CLK, ENABLE);

將要使用的GPIO連接埠時鐘全部開啟。


3. 初始化GPIO

3.1定義一個GPIO初始化結構體對象

GPIO_InitTypeDefGPIO_InitStructure;

3.2通過該結構體對象設定GPIO工作模式

a. 選擇要控制的引腳:

GPIO_InitStructure.GPIO_Pin =LED1_PIN;

b. 設定引腳輸入、輸出出模式:

GPIO_InitStructure.GPIO_Mode =GPIO_Mode_OUT;//設定引腳為輸出模式                                                                

c. 設定引腳輸出類型:

GPIO_InitStructure.GPIO_OType =GPIO_OType_PP;//設定引腳為推挽模式

d. 設定引腳上拉模式:

GPIO_InitStructure.GPIO_PuPd =GPIO_PuPd_UP;//設定引腳為上拉

e. 設定引腳速率:

GPIO_InitStructure.GPIO_Speed =GPIO_Speed_2MHz; //設定引腳速率為2Mhz

3.3 調用庫函數使用上面的初始化結構體對象,初始化GPIO

GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);


以上,一個連接埠的初始配置即已完成。


如果有多個GPIO需要初始化,則根據連接埠工作模式可歸類一起初始化。

如LED2_PIN和LED3_PIN工作方式與LED1_PIN一樣,則初始化LED2_PIN和LED3_PIN可以在上面的基礎上,如下設定:

/*選擇要控制的GPIO引腳*/

GPIO_InitStructure.GPIO_Pin =LED2_PIN;
GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);
    
/*選擇要控制的GPIO引腳*/ 
GPIO_InitStructure.GPIO_Pin =LED3_PIN;

GPIO_Init(LED3_GPIO_PORT, &GPIO_InitStructure);


即,只要重新給初始化結構體的pin腳成員變數賦新值,然後調用初始化庫函數GPIO_Init即可(注意,函數第一個參數GPIO連接埠要對應改變)。步驟3.2下的b、c、d、e可省略。

如果連接埠工作模式不一樣時,可多定義幾個初始化結構體,將相同模式的歸為一類,步驟3.2中統一設定,避免重複編寫代碼。


參考《零死角玩轉STM32-F49挑戰者》常式如下:





聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.