stm32學習筆記

2021-10-24 22:54:48 字數 2312 閱讀 5743

mdk韌體庫快速組織**

八種io口模式

操作步驟為:

1) 使能 io 口時鐘。呼叫函式為 rcc_apb2periphclockcmd 。

2) 初始化 io 引數。呼叫函式 gpio_init();

3) 操作 io 。

void gpio_setbits(gpio_typedef* gpiox, uint16_t gpio_pin)

void gpio_resetbits(gpio_typedef* gpiox, uint16_t gpio_pin)

比如我們要設定 gpiob.5 輸出 1 ,那麼方法為

gpio_setbits(gpiob , gpio_pin _5);

反之如果要設定gpiob.5 輸出 0 ,那麼方法為

單工、半雙工、全雙工

同步通訊: 傳送端在傳送序列資料的同時,提供乙個時鐘訊號,並按照一定的約定(例如:在時鐘訊號的上公升沿的時候,將資料傳送出去)傳送資料,接收端根據傳送端提供的時鐘訊號,以及大家的約定,接收資料。如:i2c、spi等有時鐘訊號的協議,都屬於這種通訊方式。

非同步通訊: 接收方並不知道資料什麼時候會到達,收發雙方可以有各自自己的時鐘。傳送方傳送的時間間隔可以不均,接收方是在資料的起始位和停止位的幫助下實現資訊同步的。這種傳輸通常是很小的分組,比如:乙個字元為一組,資料組配備起始位和結束位。所以這種傳輸方式的效率是比較低的,因為額外加入了很多的輔助位作為負載,常用在低速的傳輸中。如:uart

串列埠通訊初始化順序:

① 串列埠時鐘使能,gpio時鐘使能

② 設定引腳復用器對映

③ gpio埠初始化設定

④ 串列埠引數初始化

⑤ 初始化nvic並且開啟中斷

⑥ 使能串列埠

中斷處理函式(持續接收資料 接收完畢停止)

外部中斷

外部中斷的一般步驟:

1)使能io口時鐘,初始化io口為輸入。

2)使能syscfg時鐘,設定io口與中斷線的對映關係。

3)初始化線上中斷,設定觸發條件等。

4)配置中斷分組(nvic),並使能中斷。

5)編寫中斷服務函式。

有time1和time8等高階定時器,也有time2time5,tim9tim14等通用定時器,還有time6和time7等基本定時器,總共達14個定時器之多

定時器的時鐘**有4個:

1)內部時鐘(ck_int)

2)外部時鐘模式1:外部輸入腳(tix)

3)外部時鐘模式2:外部觸發輸入(etr),僅適用於tim2、tim3、tim4

4)內部觸發輸入(itrx):使用a定時器作為b定時器的預分頻器(a為b提供時鐘)。

stm32f4的定時器除了tim6和7。其他的定時器都可以用來產生pwm輸出。其中高階定時器tim1和tim8可以同時產生多達7路的pwm輸出。而通用定時器也能同時產生多達4路的pwm輸出!

是高階定時器要想輸出pwm,必須還要設定乙個moe位(timx_bdtr的第15位),以使能主輸出,否則不會輸出pwm。庫函式設定的函式為:

void tim_ctrlpwmoutputs(tim_typedef* timx, functionalstate newstate)

輸入捕獲脈寬測量原理
t1~t2之間,cnt計數的次數等於:n*arr+ccrx2,有了這個計數次數,再乘以cnt的計數週期,即可得到t2-t1的時間長度。

stm32f4的定時器,除了tim6和tim7,其他定時器都有輸入捕獲功能。stm32f4的輸入捕獲,簡單的說就是通過檢測timx_chx上的邊沿訊號,在邊沿訊號發生跳變(比如上公升沿/下降沿)的時候,將當前定時器的值(timx_cnt)存放到對應的通道的捕獲/比較暫存器(timx_ccrx)裡面,完成一次捕獲。同時還可以配置捕獲時是否觸發中斷/dma等。

spi介面一般使用4條線通訊:

miso 主裝置資料輸入,從裝置資料輸出。

mosi 主裝置資料輸出,從裝置資料輸入。

sclk時鐘訊號,由主裝置產生。

cs從裝置片選訊號,由主裝置控制。

主機和從機都有乙個序列移位暫存器,主機通過向它的spi序列暫存器寫入乙個位元組來發起一次傳輸。暫存器通過mosi訊號線將位元組傳送給從機,從機也將自己的移位暫存器中的內容通過miso訊號線返回給主機。這樣,兩個移位暫存器中的內容就被交換。外設的寫操作和讀操作是同步完成的。如果只進行寫操作,主機只需忽略接收到的位元組;反之,若主機要讀取從機的乙個位元組,就必須傳送乙個空位元組來引發從機的傳輸。

STM32學習筆記

剛到公司實習,要學習stm32開發,boss給了一塊戰艦開發板,讓我自己寫乙個功能要用在公司的產品上。難啊。以前根本沒接觸過stm32,只能一步一步慢慢來,利用晚上利用週末惡補一下。哎,算是為了大學前兩年還債吧。一 跑馬燈實驗 gpio輸出 實驗環境 keil4 實驗平台 戰艦stm32開發板 gp...

stm32學習筆記

開漏模式輸出 輸出暫存器上的 0 啟用 n mos,而輸出暫存器上的 1 將埠 置於高阻狀態 p mos從 被啟用 推挽模式輸出 輸出暫存器上的 0 啟用 n mos,而輸出暫存器上的 1 將啟用 p mos。上拉輸入 輸入高電平,然後接乙個 上拉電阻 保護作用 讀取此時的引腳電平為高電平 下拉輸入...

學習筆記 stm32

簡介cortex核心 cortex m4核心 庫開發與暫存器開發的關係 stm32 韌體庫與 cmsis 標準 內部結構 最小系統 小馬哥四軸原始碼學習 新建工程 點燈!gpio 按鍵暫存器對映 時鐘系統 systick定時器 埠復用和重對映 串列埠串列埠試驗函式分析 中斷看門狗 通用定時器 階段性...