轉自 :http://blog.sina.com.cn/s/blog_b44ad16b0101qzfm.html
剛剛接觸STM32,感覺很陌生,加上我水平一般,各種寄存器搞得我頭暈眼花,勉強看著文檔,照貓畫虎寫了第一個程序,點亮流水燈程序。首先在用Keil編寫的時候一共有四個文件夾,文件名分別是OBJ(存放編譯時的過程文件還有生成的.hex文件),USER(編譯程序時的用到的.c和.h),SYSTEM(程序里用到的幾個函數,delay,sys,user),HARDWARE(你自己編寫的.c和.h文件)。
有了這些就可以開始編寫流水燈程序了,先新建了一個名為LED.c的文件,要點亮的兩個LED分別對應的IO口為PB5和PE5只要控制好這兩位就能實現所要的功能了,程序中的RCC(RESETand clockcontrol)是定義的一個結構體,使能端口時鐘RCC->APB2ENR|=1<<3;在配置STM32外設時,任何時候都要先使能該外設的時鐘,APB2ENR就是APB2總線上的外設時鐘使能寄存器在第三和第六位置一,

GPIOx->CRL(STM32的CRL和CRH用來控制IO口的方向,ODR用來控制輸出電平高低或者上下拉電阻,端口輸出數據寄存器,該寄存器課讀寫,r可以知道當前端口的狀態,IDR端口輸入數據寄存器)。
接著創建一個LED.H的文件,用到了#ifndef LED_H_//if notdefine #endif 有兩個關鍵的宏定義#define LED0PBout(5) #define LED1 PEout(5)使用的是位帶操作
|