STM32 摸石頭過河系列(一)

2021-09-11 04:46:23 字數 1285 閱讀 4692

在學習stm32之前,我較為熟練的掌握了51微控制器的開發,可以運用51中的輸入、輸出,以及定時器、中斷等。今天第一天,學習stm32點亮led燈。

在本次學習中使用的是stm32f103rc系列微控制器,開發工具使用的是keil5,所使用的開發板原理圖如下:

在以後相當一段時間,我都將使用該開發板。

天不早了,開始幹活。

在51中想要點亮乙個led直接p1^0= 1就可以了,在stm32中是不會這麼簡單的,它涉及到時鐘,庫等等一系列複雜的東西。作為初學者,我們想快點看到效果,快點上手,所以對這些可以先放一放,因此此一系列的學習中,都將使用標準庫來學習。

#include#includevoid configure(void)

void delay(unsigned int x)

int main(void)

}

以上即為本次實驗的完整**。

#include#include
以上兩行**,主要為引入工程所需要的標頭檔案,標頭檔案中包含各種巨集定義各種庫操作的函式。

void configure(void)

此段**即可看出與51微控制器的大大不同,此處為gpio引腳的配置以及相關時鐘的開啟。

首先gpio_struct這個變數是乙個結構體,只要用來對gpio引腳的配置。rcc_apb2periphclockcmd函式為庫所提供的函式,主要用來開啟相關的時鐘,rcc_apb2periph_gpioa和rcc_apb2periph_gpiod分別為gpioa和gpiod的時鐘,最後的enable即為使能將兩個時鐘開啟。

結構體中的三個變數,gpio_pin用來選擇哪個引腳,根據原理圖可以選擇。gpio_mode用來設定該引腳的模式,輸入或者輸出,以及何種輸出方式。gpio_speed用來設定速度,這個我也不是很懂,但問題不大,照著設就行了。

gpio_init該函式用來初始化埠,將設定的引腳,模式,速度應用到相應的引腳。

int main(void)

}

期待已久的主函式終於到來。在主函式中將上面配置的函式呼叫以下,然後所有的操作就都在死迴圈中了。

gpio_setbits(gpioa,gpio_pin_8)該函式將a埠的第8個引腳設定為高電平。

gpio_resetbits(gpioa,gpio_pin_8)該函式將a埠的第8個引腳設定為低電平。

STM32 摸石頭過河系列(四)

今天分析stm32乙個相當重要的外設 串列埠,在我使用的這款微控制器中有三個串列埠分別為usart1,usart2,usart3。其中usart1掛載在匯流排apb2上,usart2,3掛載在apb1上。這是什麼意思呢!apb2可以看做是高速公路,傳輸速度很快。apb1可以看做是省道,傳輸速度會慢很...

STM32入門系列 STM32最小系統介紹

stm32最小系統組成 stm32微控制器最小系統,也就是能夠使得微控制器正常執行程式,最少需要連線哪些器件。一般來說,stm32最小系統由四部分組成 stm32微控制器由armcortexm3 匯流排矩陣 外設組成。微控制器開發板能夠做哪些事情是自己的選擇。我們可以製作一款stm32最小系統核心開...

STM32系列命名規則

stm32系列命名規則 stm32 f 103 c 6 t 7 1 2 3 4 5 6 7 8 第1部分 產品系列名,固定為stm32 第2部分 產品型別 f表示這是flash產品,目前沒有其它選項 第3部分 產品子系列 103表示增強型產品,101表示基本型產品 105表示整合乙個全速usb 2....