先看標頭檔案
#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軟...