<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

          但是這陣子接觸到了模塊化的思想,每一個(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。H的結(jié)構(gòu)一般為第一行寫(xiě)#ifndef _xx_H,這句話判斷xx.h是否已經(jīng)被定義,第二行寫(xiě)#define ,兩行的意思就是若果xx.h沒(méi)有定義,就定義xx.h,下面就是寫(xiě)變量的聲明和函數(shù)的聲明了。最后一行一定要寫(xiě)#endif,這是和ifndef和define想匹配的一個(gè)結(jié)構(gòu),不可以少。

          #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ù)的聲明。



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

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();