【STM32學習筆記】第一章:STM32的GPIO配置

  有時間準備給大家整理了一下學習STM32需要了解的基本知識。在我們學習STM32過程中,首先我們最先要學習的就屬STM32的GPIO了。
  什麼是GPIO?就是STM32的輸出輸入控制引腳。
  那麼我們怎麼去配置和使用GPIO引腳呢。下面由我來給大家講解講解一下GPIO的配置。

一、準備工作

這裏我們要想配置好GPIO並驗證需要的準備工作如下:

1、MDK for ARM(KEIL5)或者IAR FOR ARM(這個是軟件必備開發平臺)

2、一塊STM32最小系統開發板(這個是驗證軟件的平臺)

3、這裏最好有一本關於STM32學習的書籍(這裏就不推薦了,網上有一大把)

4、萬用表(測試硬件是否正常工具)

二、具體的操作

1、工程建立

  這裏我們需要一個根據自己的開發板配套的基礎工程。工程建立就不多說了可以參考我的STM32CUBUMX工程建立博客,或者用其它的Demo例程。

2、GPIO初始化配置

  下面我給大家分享一部分代碼。

 GPIO_InitTypeDef  GPIO_InitStructure;
 	
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;				
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		
 GPIO_Init(GPIOB, &GPIO_InitStructure);										

從這個代碼裏面我們可以看到我們使用的是GPIOB05。
GPIO_InitTypeDef GPIO_InitStructure;這句話是定義了一個名字叫GPIO_InitStructure的結構體,如果大家對結構體的定義和聲明不瞭解的建議去看一下C語言裏面講結構體的知識。因爲結構體聲明對大家而言以後是非常重要的!
下面我來給大家講解這個GPIO_InitStructure結構體裏面各個參數的作用。
1)RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
這個是使能GPIOB的時鐘,只有打開時鐘GPIO才能正常工作。
2)GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
這裏是選擇要配置的GPIO引腳爲GPIO_Pin_5
3)GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
這個是配置GPIO的模式,這裏總共有八種模式可以配置。
(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 複用推輓輸出。
我們這裏GPIO_Mode_Out_PP配置的是推輓輸出模式。
4)GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
這裏配置的是GPIO工作速度,我們這裏配置的是50MHz。這個配置只是IO口作爲輸出的時候要配置,作爲輸入口則不需要配置。
5)GPIO_Init(GPIOB, &GPIO_InitStructure);
這裏是初始化我們配置好的結構體,調用完這個函數我們配置的GPIO就可以正常使用了。

3、GPIO如何使用

這裏我給大家舉個例子如下:

GPIO_SetBits(GPIOB,GPIO_Pin_5);	
GPIO_ReSetBits(GPIOB,GPIO_Pin_5);	

GPIO_SetBits(GPIOB,GPIO_Pin_5);
這裏我們用的是庫函數的方式將GPIOB05置爲1,我們可以通過萬用表去測量該引腳電平。電平是3.3V。

GPIO_ReSetBits(GPIOB,GPIO_Pin_5);
這裏我們用的是庫函數的方式將GPIOB05置爲0,我們可以通過萬用表去測量該引腳電平。電平是0V。

4、總結

給大家說了這麼多,打擊趕快去實踐實踐吧。

有問題歡迎加 QQ:380390633,樂意給大家答疑~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章