<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 從STM32中學(xué)到的工程建立方法

從STM32中學(xué)到的工程建立方法

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏
這陣子通過(guò)STM32的學(xué)習,學(xué)到的不僅僅是硬件的知識,關(guān)于工程的結構也學(xué)到了一些實(shí)用的東西。以前學(xué)習51的時(shí)候就是一個(gè)文件寫(xiě)到底,把所有的函數寫(xiě)到一個(gè)c文件中,所有的變量也定義在一個(gè)c文件中。

但是這陣子接觸到了模塊化的思想,每一個(gè)外設,對應著(zhù)一個(gè)單獨的驅動(dòng)程序,包括一個(gè)c文件還有一個(gè)h文件。在建立工程之后,先建立組,包括USER,可以把主文件放在這個(gè)組里面;SYSTEM組,可以吧系統的一些通用型文件放在這個(gè)組里面;HARDWEAR組,可以把外設放在這個(gè)組里面。還可以建立一個(gè)組放說(shuō)明性的文件。這樣使得整個(gè)工程的結構十分的清晰,在調試程序的時(shí)候十分方便,在以后自己重新看這個(gè)工程的時(shí)候也可以很快的理清整個(gè)工程個(gè)脈絡(luò )。

本文引用地址:http://dyxdggzs.com/article/201612/324409.htm

在主文件里面,也就是main.c文件里面,寫(xiě)主程序的代碼,其他的函數通過(guò)調用頭文件的方式來(lái)調用。對于每一個(gè)外設,都要有一個(gè)單獨的驅動(dòng)程序,這樣的話(huà)可以十分方便的進(jìn)行移植,記得在假期寫(xiě)的MSP430驅動(dòng)12864液晶以及矩陣鍵盤(pán)的程序,修改了很少的地方就可以移植到STM32上進(jìn)行使用,大大的縮短了自己的開(kāi)發(fā)時(shí)間。在電設正式比賽的時(shí)候,我寫(xiě)程序基本上就是在復制粘貼,重新構架程序的框架,因為之前的訓練中基本上把各個(gè)模塊的驅動(dòng)程序都寫(xiě)好了。

在外設驅動(dòng)程序的H文件中,主要進(jìn)行函數的聲明,一定要切忌在頭文件中定義變量或者定義函數,因為在一個(gè)工程中,同一個(gè)變量或者函數可以被聲明很多次,但是只可以進(jìn)行一次定義!因為頭文件可能不只是在一個(gè)文件中調用,所以不可以出現 定義!否則編譯會(huì )出錯的!函數的聲明就是函數聲明的一般形式。變量的聲明可以采用 extern int i;的形式。但是一定要注意extern int i;和extern int i=0;的區別,前者是聲明,后者是定義。只要是需要調用此外設驅動(dòng)函數和變量的文件中,就要加上#include。H的結構一般為第一行寫(xiě)#ifndef _xx_H,這句話(huà)判斷xx.h是否已經(jīng)被定義,第二行寫(xiě)#define ,兩行的意思就是若果xx.h沒(méi)有定義,就定義xx.h,下面就是寫(xiě)變量的聲明和函數的聲明了。最后一行一定要寫(xiě)#endif,這是和ifndef和define想匹配的一個(gè)結構,不可以少。

#ifndef _LED_H

#define _LED_H

#define LED0 PAout(9)

extern u8 x;

void LED(void);

#endif

在外設的c文件中,主要是定義相關(guān)的變量,還有相關(guān)的驅動(dòng)函數,本文件所涉及到的函數使用也要通過(guò)頭文件的調用進(jìn)行聲明。

所以,頭文件可以理解為就是各個(gè)c文件之間連接的橋梁。在各個(gè)c文件中才是變量以及函數的聲明。



關(guān)鍵詞: STM32工程建

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>