標(biāo)題: 初次接觸STM32之實(shí)驗(yàn)一點(diǎn)亮LED流水燈 [打印本頁]

作者: liumei    時(shí)間: 2014-5-4 20:26
標(biāo)題: 初次接觸STM32之實(shí)驗(yàn)一點(diǎn)亮LED流水燈
轉(zhuǎn)自 :http://blog.sina.com.cn/s/blog_b44ad16b0101qzfm.html

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

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






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1