新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于 stm32f10x_conf.h 在外設(shè)V3.4版本的是使用說明

關(guān)于 stm32f10x_conf.h 在外設(shè)V3.4版本的是使用說明

作者: 時(shí)間:2016-11-17 來源:網(wǎng)絡(luò) 收藏
先說這個(gè)問題,大家都知道,我們?cè)谶x擇使用哪些外圍的的時(shí)候,是去更改從官方模版中拷貝過來的stm32f10x_conf.h文件的27-48行,把我們要用的外圍的頭文件包含進(jìn)來,不用的外圍的頭文件注釋掉,但是你是否發(fā)現(xiàn)我們根本沒有在用戶主程序文件中包含stm32f10x_conf.h這個(gè)文件。那我們的修改這個(gè)文件怎么進(jìn)入主程序文件的呢?答案只有一個(gè),它包含在stm32f10x.h這個(gè)文件中,因?yàn)樵谟脩糁魑募形覀兊谝痪渚褪褂昧?include"stm32f10x.h",所以應(yīng)該是stm32f10x.h這個(gè)文件包含了stm32f10x_conf.h,間接的包含進(jìn)了用戶主程序文件中。(其實(shí)大家去看看固件庫的文件結(jié)構(gòu)圖就明白了確實(shí)是這樣,我們推測(cè)是對(duì)的,參見下圖1)

圖1. STM32F10xxx標(biāo)準(zhǔn)外設(shè)庫體系結(jié)構(gòu)

本文引用地址:http://butianyuan.cn/article/201611/315430.htm

  2. 有了上面的認(rèn)識(shí)我們打開stm32f10x_conf.h中搜索“stm32f10x_conf.h”,我們?cè)?291-8293行看見這么幾句代碼:
    #ifdef USE_STDPERIPH_DRIVER
      #include "stm32f10x_conf.h"
    #endif
  大家看到問題所在了吧?這個(gè)條件編譯就是說:如果定義了USE_STDPERIPH_DRIVER標(biāo)記,那么就包含stm32f10x_conf.h,沒有定義就不包含。那不用說了,我們想使用固件庫,所以就應(yīng)該預(yù)定義USE_STDPERIPH_DRIVER這個(gè)標(biāo)記,KEIL提供了編譯前預(yù)定義標(biāo)記的辦法,就是上面提到的在項(xiàng)目設(shè)置“option for targe”=>“C/C++”標(biāo)簽=>“define”處加USE_STDPERIPH_DRIVER。如下圖2所示:

圖2. Keil開發(fā)環(huán)境(C/C++預(yù)設(shè)置窗口)

  3. 大家肯定看見上面標(biāo)記預(yù)設(shè)置區(qū)我還加入了另一個(gè)標(biāo)記STM32F10X_HD,是因?yàn)榇蠹視?huì)發(fā)現(xiàn)49-58行:需要我們指定期間的型號(hào)
 #if !defined (STM32F10X_LD) && !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_XL) && !defined (STM32F10X_CL)

/* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */

/* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */

/* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */

/* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */

/* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */

/* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */

/* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */

/* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */

#endif




關(guān)鍵詞: stm32f10xV3.4版本使用說

評(píng)論


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

關(guān)閉