STM32啟動文件選擇說明

来源:http://www.cnblogs.com/chens08/archive/2016/11/07/6040583.html
-Advertisement-
Play Games

圖1. STM32F10xxx標準外設庫體繫結構先說這個問題,大家都知道,我們在選擇使用哪些外圍的的時候,是去更改從官方模版中拷貝過來的stm32f10x_conf.h文件的27-48行,把我們要用的外圍的頭文件包含進來,不用的外圍的頭文件註釋掉,但是你是否發現我們根本沒有在用戶主程式文件中包含st ...


圖1. STM32F10xxx標準外設庫體繫結構

先說這個問題,大家都知道,我們在選擇使用哪些外圍的的時候,是去更改從官方模版中拷貝過來的stm32f10x_conf.h文件的27-48行,把我們要用的外圍的頭文件包含進來,不用的外圍的頭文件註釋掉,但是你是否發現我們根本沒有在用戶主程式文件中包含stm32f10x_conf.h這個文件。那我們的修改這個文件怎麼進入主程式文件的呢?答案只有一個,它包含在stm32f10x.h這個文件中,因為在用戶主文件中我們第一句就使用了#include "stm32f10x.h",所以應該是stm32f10x.h這個文件包含了stm32f10x_conf.h,間接的包含進了用戶主程式文件中。(其實大家去看看固件庫的文件結構圖就明白了確實是這樣,我們推測是對的,參見下圖1) 圖1. STM32F10xxx標準外設庫體繫結構   圖1. STM32F10xxx標準外設庫體繫結構

2. 有了上面的認識我們打開stm32f10x_conf.h中搜索“stm32f10x_conf.h”,我們在8291-8293行看見這麼幾句代碼:
    #ifdef USE_STDPERIPH_DRIVER
      #include "stm32f10x_conf.h"
    #endif
  大家看到問題所在了吧?這個條件編譯就是說:如果定義了USE_STDPERIPH_DRIVER標記,那麼就包含stm32f10x_conf.h,沒有定義就不包含。那不用說了,我們想使用固件庫,所以就應該預定義USE_STDPERIPH_DRIVER這個標記,KEIL提供了編譯前預定義標記的辦法,就是上面提到的在項目設置“option for targe”=>“C/C++”標簽=>“define”處加USE_STDPERIPH_DRIVER。如下圖2所示:   圖2. Keil開發環境(C/C++預設置視窗) 圖2. Keil開發環境(C/C++預設置視窗)   3. 大家肯定看見上面標記預設置區我還加入了另一個標記STM32F10X_HD,是因為大家會發現49-58行:需要我們指定期間的型號
 #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
  

:請問一下, STM32的STM32F10X_MD_VL和STM32F10X_MD有什麼區別呀?
- startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices
- startup_stm32f10x_ld.s: for STM32 Low density devices
- startup_stm32f10x_md_vl.s: for STM32 Medium density Value line devices
- startup_stm32f10x_md.s: for STM32 Medium density devices
- startup_stm32f10x_hd.s: for STM32 High density devices
- startup_stm32f10x_xl.s: for STM32 XL density devices
- startup_stm32f10x_cl.s: for STM32 Connectivity line devices
cl:互聯型產品,stm32f105/107系列
vl:超值型產品,stm32f100系列
xl:超高密度產品,stm32f101/103系列
ld:低密度產品,FLASH小於64K
md:中等密度產品,FLASH=64 or 128
hd:高密度產品,FLASH大於128     轉載內容,具體根據自己的情況設置。   startup_stm32f10x_cl.s 互聯型的器件,STM32F105xx,STM32F107xx
startup_stm32f10x_hd.s 大容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_hd_vl.s 大容量的STM32F100xx
startup_stm32f10x_ld.s 小容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_ld_vl.s 小容量的STM32F100xx
startup_stm32f10x_md.s 中容量的STM32F101xx,STM32F102xx,STM32F103xx
startup_stm32f10x_md_vl.s 中容量的STM32F100xx
startup_stm32f10x_xl.s FLASH在512K到1024K位元組的STM32F101xx,STM32F102xx,STM32F103xx     cl:互聯型產品,stm32f105/107系列 
vl:超值型產品,stm32f100系列 
xl:超高密度產品,stm32f101/103系列
ld:低密度產品,FLASH小於64K 
md:中等密度產品,FLASH=64 or 128 
hd:高密度產品,FLASH大於128

 

 
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 源、更新源 如果剛安裝高版本的Ubuntu,想要裝低版本的軟體,但是在軟體中心有沒有安裝選項或者找不到鏈接的,可以先加入低版本的源列表,然後再執行:sudo apt-get update更新源列表,就可以找到了。 在此之前最好先cp一下/etc/apt/sources.list做個源文件備份,已被不 ...
  • 註意:此方法只適用於nv顯卡的電腦! 在網上尋找各種方法無果的情況下,選擇重新安裝顯卡驅動,成功登錄進入圖形界面。 一、首先需要在另外一臺電腦(windows系統也可以)上下載NVIDIA相應顯卡驅動,不知道的話可以使用命令lspci | grep -i nvidia查看顯卡型號,網址為http:/ ...
  • Kali Linux 秘籍 原書:Kali Linux Cookbook 譯者:飛龍 線上閱讀 PDF格式 EPUB格式 MOBI格式 Github Git@OSC 線上閱讀 PDF格式 EPUB格式 MOBI格式 Github Git@OSC 目錄: 第一章 安裝和啟動Kali 第二章 定製 Ka ...
  • 學習Linxu以來,一直堅持編譯方式安裝軟體包,貌似圈子裡面也是都傾向於編譯,可是搜索到的編譯方法都是一堆複製粘貼來的指令, 每個人都這麼編譯, 卻幾乎沒有人去寫明那些五花八門的編譯指令代表了什麼,是否適合自己的系統!參加工作後,覺得系統提供的PHP版本預設安裝就是挺好的,簡單明瞭,不需要在依賴包方 ...
  • CentOS下安裝FTP伺服器: 第一步,檢查伺服器端是否已經安裝FTP:[root@localhost centos]# rpm -q vsftpd 如果出現的是:[root@localhost centos]# package vsftpd is not installed ,說明vsftpd沒 ...
  • 1.IOS中XML文件獲取 //設置遠程訪問地址 NSURL *url=[NSURL URLWithString:@""]; //創建動態URL請求,並初始化 NSMutableURLRequest * request=[[NSMutableURLRequest alloc]initWithURL: ...
  • 1、安裝MySql服務端命令: yum install mysql-server yum install mysql-devel 2、安裝MySql客戶端 yum install mysql 3、啟動服務 service mysqld start或者/etc/init.d/mysqld start ...
  • XML文件有2種解析方式 1.基於文檔(document) 2.基於事件(sax) 1.IOS中XML文件獲取 首先要將XML導入工程中 在ViewController的按鈕事件中,代碼如下: //獲取xml完整路徑 NSString * path=[[NSBundle mainBundle] pa ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...