從STM32中學(xué)到的工程建立方法
但是這陣子接觸到了模塊化的思想,每一個(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
#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文件中才是變量以及函數的聲明。
評論