STM32從零開始(二) 點亮led燈

2021-10-05 17:28:40 字數 1689 閱讀 3897

先看標頭檔案

#ifndef __gpio_led72mhz__

#define __gpio_led72mhz__

#define gpiob_base 0x40010c00

#define gpiob_crh (gpiob_base + 0x04)

#define gpiob_odr (gpiob_base + 0x0c)

#define rgpiob_crh (*(unsigned int *)gpiob_crh)

#define rgpiob_odr (*(unsigned int *)gpiob_odr)

#define rcc_base 0x40021000

#define rcc_apb2enr (rcc_base + 0x18)

#define rrcc_apb2enr (*(unsigned int *)rcc_apb2enr)

void

ledinit

(void);

void

ledflash

(void);

void

delay

(unsigned

int i)

;#endif

這個就很標準的寫法。

這些位址的值查stm32中文手冊即可

這個就是初始位址。

偏移量就是在剛才上邊的基位址上加偏移量就是現在的位址。4個位元組一般是。因為32位除以8等於4,就是4個位元組。每次傳輸資料都是4位元組。具體暫存器是多少手冊裡找到對應的位寫就行。

思路是這樣的。

stm32使用的時候先設定時鐘。在下一章裡會詳細設定。這裡直接就用系統預設的就行。rrcc_apb2enr 是給apb2匯流排上的gpiob口使能,讓他上邊的時鐘工作起來。不設定的話就不動彈。時鐘是他的靈魂。

rgpiob_odr 這個是輸出口,設定1輸出1,設定0輸出0。因為這32輸入和輸出是不同的暫存器。

rgpiob_crh 就是埠配置暫存器

是用來設定輸入輸出方式的。

兩個控制暫存器配置結束,就可以用了

輸出暫存器odr設定多少就輸出多少

就沒啦。

STM32學習心得 二 點亮LED燈

stm32學習心得 二 點亮led燈 在建立好工程模板後,就可以開始真正進入stm32的學習。手下那當然是試著點亮乙個led燈。首先在user目錄下建立乙個空資料夾,並命名為bsp led bsp的意思是板級支援包,即該 僅支援這塊板子 進去資料夾,新建兩個檔案,分別是bsp led.c以及bsp ...

用RVCT編譯STM32點亮LED

板子用的微芯力科的三合一微控制器開發評估套件,要點亮的兩個led接在pb5,pb6上。先寫main.c了 define rcc apb2enr volatile unsigned long 0x40021018 時鐘使能暫存器 define gpiob crl volatile unsigned l...

STM32點亮LED(熟中新認識)

stm32點亮led步驟案例 準備 1 硬體 stm32開發板,jlink 器 用於燒入程式 2 軟體 a 整合開發環境keil,我用的是keil4 b jlink驅動setup jlink v490.exe 驅動jlink 器 準備妥當,go go go 點亮led燈的步驟如下 1.安裝keil軟...