從STM32中學(xué)到的工程建立方法
但是這陣子接觸到了模塊化的思想,每一個(gè)外設(shè),對(duì)應(yīng)著一個(gè)單獨(dú)的驅(qū)動(dòng)程序,包括一個(gè)c文件還有一個(gè)h文件。在建立工程之后,先建立組,包括USER,可以把主文件放在這個(gè)組里面;SYSTEM組,可以吧系統(tǒng)的一些通用型文件放在這個(gè)組里面;HARDWEAR組,可以把外設(shè)放在這個(gè)組里面。還可以建立一個(gè)組放說(shuō)明性的文件。這樣使得整個(gè)工程的結(jié)構(gòu)十分的清晰,在調(diào)試程序的時(shí)候十分方便,在以后自己重新看這個(gè)工程的時(shí)候也可以很快的理清整個(gè)工程個(gè)脈絡(luò)。
本文引用地址:http://www.ex-cimer.com/article/201612/324409.htm在主文件里面,也就是main.c文件里面,寫(xiě)主程序的代碼,其他的函數(shù)通過(guò)調(diào)用頭文件的方式來(lái)調(diào)用。對(duì)于每一個(gè)外設(shè),都要有一個(gè)單獨(dú)的驅(qū)動(dòng)程序,這樣的話可以十分方便的進(jìn)行移植,記得在假期寫(xiě)的MSP430驅(qū)動(dòng)12864液晶以及矩陣鍵盤(pán)的程序,修改了很少的地方就可以移植到STM32上進(jìn)行使用,大大的縮短了自己的開(kāi)發(fā)時(shí)間。在電設(shè)正式比賽的時(shí)候,我寫(xiě)程序基本上就是在復(fù)制粘貼,重新構(gòu)架程序的框架,因?yàn)橹暗挠?xùn)練中基本上把各個(gè)模塊的驅(qū)動(dòng)程序都寫(xiě)好了。
在外設(shè)驅(qū)動(dòng)程序的H文件中,主要進(jìn)行函數(shù)的聲明,一定要切忌在頭文件中定義變量或者定義函數(shù),因?yàn)樵谝粋€(gè)工程中,同一個(gè)變量或者函數(shù)可以被聲明很多次,但是只可以進(jìn)行一次定義!因?yàn)轭^文件可能不只是在一個(gè)文件中調(diào)用,所以不可以出現(xiàn) 定義!否則編譯會(huì)出錯(cuò)的!函數(shù)的聲明就是函數(shù)聲明的一般形式。變量的聲明可以采用 extern int i;的形式。但是一定要注意extern int i;和extern int i=0;的區(qū)別,前者是聲明,后者是定義。只要是需要調(diào)用此外設(shè)驅(qū)動(dòng)函數(shù)和變量的文件中,就要加上#include
#ifndef _LED_H
#define _LED_H
#define LED0 PAout(9)
extern u8 x;
void LED(void);
#endif
在外設(shè)的c文件中,主要是定義相關(guān)的變量,還有相關(guān)的驅(qū)動(dòng)函數(shù),本文件所涉及到的函數(shù)使用也要通過(guò)頭文件的調(diào)用進(jìn)行聲明。
所以,頭文件可以理解為就是各個(gè)c文件之間連接的橋梁。在各個(gè)c文件中才是變量以及函數(shù)的聲明。
評(píng)論