STM32嵌入式開發學習筆記(一)

2021-10-19 08:23:09 字數 1623 閱讀 1603

stm32cubemx是st官方推出的一種stm32設定和初始化c**的生成器。它可以直觀的選擇stm32微控制器、配置微控制器、自動處理引腳衝突、動態設定確定時鐘樹、動態確定引數設定的外圍和中介軟體模式和初始化。cubemx生成的**可以在keil、iar、gcc等程式設計軟體上面使用。簡單理解,就是cubemx軟體是乙個工具軟體,我們只要在上面簡單的點點點就可以生成stm32功能**工程,這個**工程已經包括了必要的外設初始化程式,這樣節省我們的工作量,我們的工作重點放在專案任務的實現。

hal的全稱是:hardware abstraction layer (硬體抽象層),它的存在是為了確保stm32系列最大的移植性。hal位於作業系統核心與硬體電路之間的介面層,其目的在於將硬體抽象化。與stm32cubemx配合使用,st官方便推出了乙個新的函式庫,因為和hal息息相關,在這裡,我們便稱為hal庫。

gpio:general purpose input & output

stm32晶元最擁有gpioa、gpiob...gpiog等7組埠,每組埠最多擁有pin0、pin1...pin15共16個引腳。

stm32的每個io埠都可以自由程式設計,但i/o埠暫存器必須按32位字被訪問。

stm32的每個io埠都由7個暫存器來控制。 stm32的iio埠可以由軟體配置成8種模式:

理解三個引數:

1- gpiox:目標引腳的埠號。

2-gpio_pin:目標引腳的引腳號。

3-pinstate:高電平----gpio_pin_set;低電平----gpio_pin_reset

例:向pb8引腳輸出高電平。

hal_gpio_writepin(gpiob,gpio_pin_8,gpio_pin_set);

void hal_gpio_togglepin(gpio_typedef*gpiox,uint16_t gpio_pin);

例:將pa3引腳輸出電平翻轉。

hal_gpio_togglepin(gpioa, gpio_pin_3);

/* user code end while */

//方法1

/*hal_gpio_writepin(gpiob,gpio_pin_9,gpio_pin_set);

hal_delay(500);

hal_gpio_writepin(gpiob,gpio_pin_9,gpio_pin_set);

hal_delay(500);

*///方法2

hal_gpio_togglepin(gpiob,gpio_pin_9);

hal_delay(500);

hal_gpio_togglepin(gpiob,gpio_pin_8);

hal_delay(500);

/* user code begin 3 */

} /* user code end 3 */

嵌入式之STM32系列筆記

一 微控制器程式構架設計 用微控制器開發專案,當 開發到一定的程度後,由於涉及到的源程式檔案與標頭檔案眾多,若在前期為程式設計好架構,則在一定程度上便於程式的維護與管理,更有利於理清思路,加快專案的開發。通常將程式架構設定為四層,如下圖 其中middleware可以沒有,如果沒有外部擴充套件件,如外...

Pre藍橋杯嵌入式 STM32 學習索引

寫在前面 0 專欄鏈結 1 unkown device 2 移植lcd程式 建立工程 lcd程式分析 3 如何直接使用lcd例程來作為賽場使用的工程 學習目錄 1 led之點燈儀式 2 keyboard 主迴圈掃瞄 外部中斷 3 buzzer之將jtag功能相關引腳對映為普通io afio的使用 4...

初試stm32嵌入式開發遇到的巨坑

開發板使用的是st官方的stm32f207zg nucleo,遇到的問題是在keil中報錯 no target connected到網上找答案,都是說gpio口的問題,讓按著reset鍵改debug 的setting然後再download就好了,試了好久都沒效果,遂放棄。還有的說可能是晶元沒上電,我...