gpio_inittypedef gpio_initstructure;
typedef struct
gpio_inittypedef;
32中包含大量的結構體定義,如上為最基本的用typedef定義新的結構體定義名
gpio_setbits(gpiof,gpio_pin_9 | gpio_pin_10);
void gpio_setbits(gpio_typedef* gpiox, uint16_t gpio_pin)
第乙個引數為指向某個結構體的指標,其結構體實質如下包含了gpio的各個暫存器,實際傳入函式的是各暫存器的位址
typedef struct
gpio_typedef;
#define __io volatile
英[ˈvɒlətaɪl]
volatile
的作用是: 作為指令
關鍵字,確保本條指令不會因
編譯器的優化而省略,且要求每次直接讀值.
簡單地說就是防止編譯器對**進行優化.比如如下程式: 1
2
3
4
xbyte[2]=0x55;
xbyte[2]=0x56;
xbyte[2]=0x57;
xbyte[2]=0x58;
對外部硬體而言,上述四條語句分別表示不同的操作,會產生四種不同的動作,但是編譯器卻會對上述四條語句進行優化,認為只有xbyte[2]=0x58(即忽略前三條語句,只產生一條機器**)。如果鍵入
volatile,則編譯器會逐一的進行編譯並產生相應的機器**(產生四條**)
#define gpiof ((gpio_typedef *) gpiof_base)
繼續追蹤下去實質為外部位址的對映,gpiof_base是乙個gpiof的基址,(gpio_typedef *) 將其強制轉化為指向結構體的指標,所以gpiof實際是乙個指標
STM32學習之 stm32中C語言的資料型別
stm32 c語言資料型別 在程式設計過程中,不同的cpu,其資料型別的意義各不相同,所以一定要注意相應變數資料型別的定義和轉換,否則在計算中可能會出現不確定的錯誤。一 c語言中的種類資料 整型 int short long 實型 float double stm32中的資料型別非常的多,常用的變數...
STM32庫檔案相關
1.stm32f10x.h 實現外設的暫存器對映,和所有的中斷通道irq,新庫是stm32f105xc.h 2.core cm3.h 實現核心的暫存器對映,nvic,systick等 3.stm32f1xx.h 存放外設初始化結構體,及初始化函式宣告 4.stm32f1xx.c 存放外設庫函式 5....
STM32學習筆記
剛到公司實習,要學習stm32開發,boss給了一塊戰艦開發板,讓我自己寫乙個功能要用在公司的產品上。難啊。以前根本沒接觸過stm32,只能一步一步慢慢來,利用晚上利用週末惡補一下。哎,算是為了大學前兩年還債吧。一 跑馬燈實驗 gpio輸出 實驗環境 keil4 實驗平台 戰艦stm32開發板 gp...