自學《STM32庫開發實戰指南》的筆記一

2021-10-06 16:09:24 字數 2203 閱讀 1060

自學《stm32庫開發實戰指南》的筆記

基礎知識

stm32庫是對stm32提供的函式介面,api。通過呼叫函式介面來配置stm32暫存器。

為解決不同晶元廠商生產的cortex微控制器軟體的相容性,建立了cmsis標準。cmsis層提供的是硬體抽象層,對軟體移植有好處。

使用者層是要進行刪減(條件編譯)和改動的檔案,cmsis層的檔案直接包含進工程。

c語言複習

1.位操作

清零:& 設值: |

移位操作:gpioa->odr|=1<<5; 輸出高,不改變其他位

這樣我們一目了然,5 告訴我們是第 5 位也就是第 6 個埠,1 告訴我們是設定為 1 了。

~取反操作:sr 暫存器的每一位都代表乙個狀態,某個時刻我們希望去設定某一位的值為 0,同時其他位都保留為 1,

timx->sr = (uint16_t)~tim_flag;#definetim_flag ((uint16_t)0x0001))

2.define 巨集定義

3.ifdef 條件編譯

#ifdef 識別符號

程式段 1

#else

程式段 2

#endif

4.extern 變數宣告

5.typedef 型別別名

struct _gpio

;struct _gpio gpioa;//定義結構體變數 gpioa

使用型別別名的**如下:

typedef struct

gpio_typedef;

gpio_typedef gpioa;//定義結構體變數 gpioa

6.結構體

宣告結構體型別:

struct 結構體名變數名列表;

引用:結構體變數名字.成員名 若是結構體指標 usart->baudrate;

stm32系統架構

stm32時鐘系統

埠復用stm32的內建外設的外部引腳是與gpio復用的。復用埠初始化有幾個步驟:

1) gpio 埠時鐘使能。要使用到埠復用,當然要使能埠的時鐘了。

rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable);

2) 復用的外設時鐘使能。比如你要將埠 pa9,pa10 復用為串列埠,所以要使能串列埠時鐘。

rcc_apb2periphclockcmd(rcc_apb2periph_usart1, enable);

3) 埠模式配置。 在 io 復用位內建外設功能引腳的時候,必須設定 gpio 埠的模式。

埠重對映

乙個外設的引腳除了具有預設的埠外,還可以通過設定重對映暫存器的方式,把這個外設的引腳對映到其它的埠。具體對應關係檢視《stm32 中文參考手冊 v10》的 p116 頁「8.3 復用功能和除錯配置」。

所以重對映我們同樣要使能復用功能的時候講解的 2 個時鐘外,還要使能 afio 功能時鐘,然後要呼叫重對映函式。詳細步驟為:

1)使能 gpiob 時鐘:

rcc_apb2periphclockcmd(rcc_apb2periph_gpiob, enable);

2)使能串列埠 1 時鐘:

rcc_apb2periphclockcmd(rcc_apb2periph_usart1, enable);

3)使能 afio 時鐘:

rcc_apb2periphclockcmd(rcc_apb2periph_afio, enable);

4)開啟重對映:

gpio_pinremapconfig(gpio_remap_usart1, enable);

stm32庫開發實戰指南讀書筆記(二)

編寫自己的庫函式 c檔案 具體實現機理 該部分主要是函式功能的實現,如按鍵點亮led的相應知識點。主要實現目錄如下 乙個基本的stm32應該包含如下 博主使用的是正點原子的stm32 mini開發板,實際開發過程中,引腳的巨集定義應根據實際電路來設定 基本硬體如下 該部分包括了rs232轉ttl電路...

STM32開發入門及實戰

本部落格的編寫目的 一 自我總結,記錄。二 分享,輸出,加深思考。三 不作細緻如書本般編排,儘管那樣的排版很好看,但是過於耗費時間,還有很多東西沒有必要說明,完全可以自己去解決,但還是盡量做好排版,便於閱讀。四 盡可能舉一反三,做到真正能夠處理實際問題。12 345stm32開發實戰 1 目錄一 概...

STM32 庫開發 位址對映

1.stm32有ahb,apb2,apb1匯流排。其中apb2外設位址空間是從0x40010000至0x40013fff位址。第乙個位址稱為基位址。gpio typedef gpiox gpiox gpioa gpiox crl 0xffffffff 3.配置gpio的暫存器要開啟外設時鐘!區別於5...