stm32開發筆記(二):stm32系列使用V3.5韌體庫的幫助文件以及GPIO基本功能(一)

  • 2021 年 5 月 20 日
  • 筆記

前言

  stm32系列是最常用的單片機之一,不同的版本對應除了引腳、外設、頻率、容量等』不同之外,其開發的方法是一樣的。
  本章講解使用庫函數使用GPIO引腳功能。

 

補充

  本文章為多年前學習方法總結,基本是一通百通(PS:學的是方法而不是技術本身)。

 

stm32系列幫助文件GPIO手把手詳細解說

  編寫GPIO功能,建議初學者學習幫助文件中的案例。
  在這裡插入圖片描述
  這是韌體庫V3.4中的GPIO源文件,而V3.5中的資源文件使用的不是韌體庫,V3.4這個文件明顯是GPIO操作LED的,所以本人認為應是V3.5的韌體庫的.chm幫助文檔有問題,V3.5的部分程式碼截圖如下:
  在這裡插入圖片描述

  可以看出,其函數體根本沒有使用韌體庫,而是使用暫存器,然後我們這個源文件部分使用V3.4版本的韌體庫作為參考,繼續往下走:
  在這裡插入圖片描述

  再點擊
  在這裡插入圖片描述

  看程式碼,然後我們跟著程式碼來詳細看整個文件,我們不管注釋。
  在這裡插入圖片描述

  00022行是韌體庫頭文件,而00023行是官方評估板的頭文件,這個對我們肯定是不用的,是與使用的具體的硬體定義有關的宏定義,繼續往下走
  在這裡插入圖片描述

  00037行是定義GPIO初始化的結構體,要操作任何外設都得先過它初始化
  在這裡插入圖片描述

  00040行是延遲函數
  在這裡插入圖片描述
  00049行進入主函數,也是程式開始執行的入口,注意看注釋,時鐘已經通過啟動文件中調用SystemInit()函數配置好(在未配置韌體庫時,只添加啟動程式碼和main函數,會報錯沒有定義SystemInit函數,這就很好的解釋了此處為什麼沒有配置時鐘,詳細了解請查看QQ21497936空間中STM32新手問題解決方法),繼續往下看
  在這裡插入圖片描述

  (注意:這個注釋,這個注釋的意思是將埠全部初始化成模擬輸入模式,這樣可以減少耗電以及增加硬體的抗干擾性能)
  00061,00062,00063行是使能外設GPIOA,GPIOB,GPIOC,GPIOD,GPIOE的外設時鐘。
  00065行是選中所有引腳(引腳0至引腳15)
  00066行是輸入輸出模式為模擬輸入
  在這裡插入圖片描述
  00076行至00082行之間,當定義了宏STM3210E_EVAL或者USE_STM32100E_EVAL則將埠GPIOF,GPIOG也初始化,我們可以判斷這兩個宏是官方配套的評估板上才有的F埠和G埠,其用的引腳至少144引腳及以上的晶片。
  在這裡插入圖片描述
  這個是配套版初始化的LED1,LED2,LED3,LED4這樣我們可以判斷,這個函數是初始化指定埠的一個引腳,至於是哪個引腳肯定在評估板頭文件有相關的宏定義,那麼我們深入先點開STM_EVAL_LEDInit這個函數,查看它的源程式碼
  在這裡插入圖片描述
  跟我們之前預想的一樣,定義一個結構體,使能外設,指定引腳,推挽輸出,50MHz的頻率,初始化;至於Led_TypeDef這個結構和GPIO_CLK,GPIO_PORT應都是與評估板有關的宏定義。我們關心的重點在於聲明結構體,使能時鐘,配置引腳,然後初始化,我們還是把開發板這個宏定義截圖出來,便於大家理解,我們查找一次LED1定義,來看看LED1是哪個埠的哪個引腳,是如何完成配置的
  在這裡插入圖片描述
  LED1宏的實際值為0;
  在這裡插入圖片描述
  LED1帶入LEDn,實際值為0,c語言數組,則GPIO_CLK[LED1]實際上是LED1_GPIO_CLK,
  在這裡插入圖片描述
  它的宏定義為C埠,我們再看看引腳:
  在這裡插入圖片描述
  GPIO_PIN[LED1]實際為GPIO_PIN [0],其宏定義為GPIO_Pin_6(註:聯繫到韌體庫本自身的宏定義了)

  在這裡插入圖片描述
  GPIO_PORT[LED1]實際為LED_GPIO_PORT宏,定義如下

  在這裡插入圖片描述
  那麼就是埠C,所以這段程式碼就是埠C使能,配置引腳6為推挽輸出,然後初始化。
  LED1,LED2,LED3,LED4在評估板的頭文件相關宏定義如下:
  在這裡插入圖片描述

  00090-00115是與評估板相關的LED燈操作,開LED1,延遲,開LED2,開LED3,關LED1,延遲,開LED4,關LED2,關LED3延遲,關LED4,這個程式就不斷這個循環體

  在這裡插入圖片描述
  00123-00126是延遲函數的函數體
  這個例子文件就說到此處,詳解了一般IO口的設置過程,過程總結如下:

  • (可選步驟):都設置成模擬輸入,降低能耗和增加抗EMC/EMI等

  • 步驟二:使能埠的外設時鐘

  • 步驟三:結構體變數配置埠的相關資訊(埠引腳,埠模式,埠頻率)

  • 步驟四:初始化埠

  • 步驟五:可以對埠進行輸入輸出的操作。

 
 

若該文為原創文章,轉載請註明原文出處
本文章部落格地址://blog.csdn.net/qq21497936/article/details/117085167