農林漁牧網

您現在的位置是:首頁 > 林業

低學歷如何學習STM32,從點燈開始

2022-04-10由 一哥微控制器 發表于 林業

初始學歷會更改嗎

從“點燈”入門STM32

本篇文章我們透過一個簡略的例子來熟悉模組化程式設計以及利用庫函式的方法進行開發使用STM32外設的根本流程。

首先,我們翻開本講的例程,在工程目錄我們能夠看到驅動分組下有 led、delay 兩個。c原始檔,其實,它們對應的還有兩個標頭檔案,它們就儲存在我們的 DRIVER 資料夾下的 inc 資料夾中,同理,原始檔就儲存在 src 資料夾中。

我們在原始檔裡定義相關的函式,然後在對應的標頭檔案裡宣告它,最後我們在想要呼叫此函式的原始檔中包含該標頭檔案即可,這就是模組化程式設計。這樣做的益處就是程式碼整體框架構造清晰明瞭,便於我們進行後期維護與移植。

因此,這個知識點希望大家能夠掌握。

下面我們就初始詳細講解如何驅動我們實驗平臺上的使用者指示燈。首先,我們要明白,點燈它的本質是透過控制GPIO引腳這個根底外設輸出高低電平,從而到達燈亮滅的效果,那麼大家可能就要問了,之前說過,能夠配置使用的通用 GPIO 引腳有37個,這麼多GPIO口,我們該使用哪個呢?

透過觀察下圖,我們能夠發現,使用者燈的一端是與主控晶片的 PC13 這個引腳電氣相連的,因此我們就是要配置這個管腳輸出高低電平,那麼究竟是那種電平會使燈變亮呢?這時就要看我們的驅動電路了,其實也很簡略,使用者燈其實就是個發光二極體 ,既然是二極體,那麼它就具有單向導電性 ,它的正極 接了3。3V電壓,我們須要點亮它就須要在負極輸出低電平,也就是 PC13 這個引腳得輸出低電平。

低學歷如何學習STM32,從點燈開始

同樣

,燈滅就得輸出高電平。

接下來,我們回到工程中透過例項來了解 STM32根底外設使用的根本流程,首先我們用到了 GPIO 這個外設。因此,在工程中我們要新增 GPIO 這個外設的庫函式,新增的方法這裡再給大家演示一下。新增它是為了用於後面的初始化呼叫,接著新建兩個檔案,一個是使用者燈原始檔,一個是對應的標頭檔案,分別命名為 led。c、led。h,儲存在驅動資料夾下的src、inc 資料夾中,同時不要忘了將 led。c原始檔新增到工程中來,接下來,就能夠在 led。c中編寫相關驅動函數了。

在今天的實驗中,所需編寫的函式比較簡略,就一個初始化函式,首先,我們定義一個 函式名,這個不能和庫函式的函式名一樣,否則會報錯,這裡取這個名字就能夠,接著看函式主體,首先得定義一個GPIO的構造體變數,用於初始化構造體成員,(這個能夠直接在 GPIO_Init 庫函數里複製),接著很重要的一點就是我們要開啟 GPIOC 這個口的時鐘,否則它是不會工作的,開啟它的時鐘,我們直接呼叫庫函數里的 RCC_APB2PeriphClockCmd 這個函式即可,接下來就是初始化 GPIO 的成員變量了,引腳選擇 GPIO_Pin_13 這個引腳,模式選擇 推輓輸出模式,速度選擇 50MHz 就能夠了,最後 完成 GPIO_Init函式的初始化就能夠了。接下來,我們一上電為了不讓燈亮,就呼叫了 GPIO_SetBits 這個函式就能夠了。然後不要忘了在 led。h中宣告這個函式。

為了使使用者燈到達閃爍的效果,就須要加入延時,於是利用相同的方法新建delay。c、delay。h 兩個檔案,不要忘了也必需加入到工程中來,然後再delay。c中編寫一個簡略的計數延時函式就能夠了,同理也須要將它宣告在 delay。h中。

最後,在主函式中,我們先呼叫 LED的初始化函式,然後在 while(1) 死迴圈中呼叫 GPIO_ResetBits 這個函式點亮 led,在呼叫自己編寫的延時函式,然後在呼叫輸出高電平這個函式,在加延時,這樣就實現了一個迴圈閃爍的 使用者燈。

接下來,我們看一下 elink32 模擬器與實驗板的連線圖。

低學歷如何學習STM32,從點燈開始

最後,點選編譯 ,無誤後下載到我們的實驗平臺上,觀察效果。更改延時值的大小就可以改變它的閃爍頻率。

低學歷如何學習STM32,從點燈開始

想要學習微控制器的朋友 ,關注我們,回覆一哥,與導師一起學習成長,共同進步,還有更多資料領取。

說了這麼多,大家記得留意下方評論第一條(或者私信我)有乾貨~