日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]最近考試較多,教材編寫暫停了一下,之前寫了很多,只是每一章都感覺不是特別完整,最近把其中的部分內容貼出來一下,歡迎指正。本文內容基于我對固件庫的理解,按照便于理解的順序進行整理介紹,部分參考了固件庫的

最近考試較多,教材編寫暫停了一下,之前寫了很多,只是每一章都感覺不是特別完整,最近把其中的部分內容貼出來一下,歡迎指正。本文內容基于我對固件庫的理解,按照便于理解的順序進行整理介紹,部分參考了固件庫的說明,但是也基本上重新表述并按照我理解的順序進行重新編寫。我的目的很簡單,很多人寫教程只是告訴你怎么做,不會告訴你為什么這么做,我就盡量吧前因后果都說清楚,這是我的出發(fā)點,水平所限,難免有很大的局限性,具體不足歡迎指正。1.1 基于標準外設庫的軟件開發(fā)1.1.1 STM32標準外設庫概述

STM32標準外設庫之前的版本也稱固件函數(shù)庫或簡稱固件庫,是一個固件函數(shù)包,它由程序、數(shù)據(jù)結構和宏組成,包括了微控制器所有外設的性能特征。該函數(shù)庫還包括每一個外設的驅動描述和應用實例,為開發(fā)者訪問底層硬件提供了一個中間API,通過使用固件函數(shù)庫,無需深入掌握底層硬件細節(jié),開發(fā)者就可以輕松應用每一個外設。因此,使用固態(tài)函數(shù)庫可以大大減少用戶的程序編寫時間,進而降低開發(fā)成本。每個外設驅動都由一組函數(shù)組成,這組函數(shù)覆蓋了該外設所有功能。每個器件的開發(fā)都由一個通用API (application programming interface 應用編程界面)驅動,API對該驅動程序的結構,函數(shù)和參數(shù)名稱都進行了標準化。

ST公司2007年10月發(fā)布了V1.0版本的固件庫,MDK ARM3.22之前的版本均支持該庫。2008年6月發(fā)布了V2.0版的固件庫,從2008年9月推出的MDK ARM3.23版本至今均使用V2.0版本的固件庫。V3.0以后的版本相對之前的版本改動較大,本書使用目前較新的V3.4版本。

1.1.2 使用標準外設庫開發(fā)的優(yōu)勢

簡單的說,使用標準外設庫進行開發(fā)最大的優(yōu)勢就在于可以使開發(fā)者不用深入了解底層硬件細節(jié)就可以靈活規(guī)范的使用每一個外設。標準外設庫覆蓋了從GPIO到定時器,再到CAN、I2C、SPI、UART和ADC等等的所有標準外設。對應的C源代碼只是用了最基本的C編程的知識,所有代碼經(jīng)過嚴格測試,易于理解和使用,并且配有完整的文檔,非常方便進行二次開發(fā)和應用。

1.1.3 STM32F10XXX標準外設庫結構與文件描述1. 標準外設庫的文件結構

在上一小節(jié)中已經(jīng)介紹了使用標準外設庫的開發(fā)的優(yōu)勢,因此對標準外設庫的熟悉程度直接影響到程序的編寫,下面讓我們來認識一下STM32F10XXX的標準外設庫。STM32F10XXX的標準外設庫經(jīng)歷眾多的更新目前已經(jīng)更新到最新的3.5版本,開發(fā)環(huán)境中自帶的標準外設庫為2.0.3版本,本書中以比較穩(wěn)定而且較新的V3.4版本為基礎介紹標準外設庫的結構。

可以從ST的官方網(wǎng)站下載到各種版本的標準外設庫,首先看一下3.4版本標準外設庫的文件結構,如圖 5?3所示。3.0以上版本的文件結構大致相同,每個版本可能略有調整。

圖 5?3 STM32F10XXX V3.4標準外設庫文件結構

表 5?4中介紹了每個文件夾所包含的主要內容。

表 5?4 STM32F10XXX V3.4標準外設庫文件夾描述

STM32F10x_StdPeriph_Lib_V3.4.0

_htmresc

本文件夾包含了所有的html頁面資源

Libraries

CMSIS

見表 5?6

STM32F10x_StdPeriph_Driver

inc

標準外設庫驅動頭文件

src

標準外設庫驅動源文件


Project

Examples

標準外設庫驅動的完整例程

Template

MDK-ARM

KEIL RVMDK的項目模板示例

RIDE

Raisonance RIDE的項目模板示例


EWARM

IAR EWARM的項目模板示例


Utilities

STM3210-EVAL

本文件夾包含了用于STM3210B-EVAL和STM3210E-EVAL評估板的專用驅動

標準外設庫的第一部分是CMSIS 和STM32F10x_StdPeriph_Driver,CMSIS 是獨立于供應商的Cortex-M 處理器系列硬件抽象層,為芯片廠商和中間件供應商提供了簡單的處理器軟件接口,簡化了軟件復用工作,降低了Cortex-M 上操作系統(tǒng)的移植難度,并減少了新入門的微控制器開發(fā)者的學習曲線和新產(chǎn)品的上市時間。STM32F10x_StdPeriph_Driver則包括了分別對應包括了所有外設對應驅動函數(shù),這些驅動函數(shù)均使用C語言編寫,并提供了統(tǒng)一的易于調用的函數(shù)接口,供開發(fā)者使用。Project文件夾中則包括了ST官方的所有例程和基于不同編譯器的項目模板,這些例程是學習和使用STM32的重要參考。Utilities包含了相關評估板的示例程序和驅動函數(shù),供使用官方評估板的開發(fā)者使用,很多驅動函數(shù)同樣可以作為學習的重要參考。

STM32F10xxx標準外設庫體系結構如圖 5?4所示。圖中很好的展示了各層以及具體文件之間的聯(lián)系,各文件的具體功能說明如表 5?5所示。

圖 5?4 STM32F10xxx標準外設庫體系結構

表 5?5 文件功能說明

文件名

功能描述

具體功能說明

core_cm3.h

core_cm3.c

Cortex-M3內核及其設備文件

訪問Cortex-M3內核及其設備:NVIC,SysTick等

訪問Cortex-M3的CPU寄存器和內核外設的函數(shù)

stm32f10x.h

微控制器專用頭文件

這個文件包含了STM32F10x全系列所有外設寄存器的定義(寄存器的基地址和布局)、位定義、中斷向量表、存儲空間的地址映射等

system_stm32f10x.h

system_stm32f10x.c

微控制器專用系統(tǒng)文件

函數(shù)SystemInit,用來初始化微控制器

函數(shù)Sysem_ExtMemCtl,用來配置外部存儲器控制器。它位于文件startup_stm32f10x_xx.s /.c,在跳轉到main前調用

SystemFrequncy,該值代表系統(tǒng)時鐘頻率

startup_stm32f10x_Xd.s

編譯器啟動代碼

微控制器專用的中斷處理程序列表(與頭文件一致)

弱定義(Weak)的中斷處理程序默認函數(shù)(可以被用戶代碼覆蓋) 該文件是與編譯器相關的

stm32f10x_conf.h

固件庫配置文件

通過更改包含的外設頭文件來選擇固件庫所使用的外設,在新建程序和進行功能變更之前應當首先修改對應的配置。

stm32f10x_it.h

stm32f10x_it.c

外設中斷函數(shù)文件

用戶可以相應的加入自己的中斷程序的代碼,對于指向同一個中斷向量的多個不同中斷請求,用戶可以通過判斷外設的中斷標志位來確定準確的中斷源,執(zhí)行相應的中斷服務函數(shù)。

stm32f10x_ppp.h

stm32f10x_ppp.c

外設驅動函數(shù)文件

包括了相關外設的初始化配置和部分功能應用函數(shù),這部分是進行編程功能實現(xiàn)的重要組成部分。

Application.c

用戶文件

用戶程序文件,通過標準外設庫提供的接口進行相應的外設配置和功能設計。

2. 基于CMSIS標準的軟件架構

根據(jù)調查研究,軟件開發(fā)已經(jīng)被嵌入式行業(yè)公認為最主要的開發(fā)成本。對于ARM公司來說,一個ARM內核往往會授權給多個廠家,生產(chǎn)種類繁多的產(chǎn)品,如果沒有一個通用的軟件接口標準,那么當開發(fā)者在使用不同廠家的芯片時將極大的增加了軟件開發(fā)成本,因此,ARM與Atmel、IAR、Keil、hami-nary Micro、Micrium、NXP、SEGGER和ST等諸多芯片和軟件廠商合作,將所有Cortex芯片廠商產(chǎn)品的軟件接口標準化,制定了CMSIS標準。此舉意在降低軟件開發(fā)成本,尤其針對新設備項目開發(fā),或者將已有軟件移植到其他芯片廠商提供的基于Cortex處理器的微控制器的情況。有了該標準,芯片廠商就能夠將他們的資源專注于產(chǎn)品外設特性的差異化,并且消除對微控制器進行編程時需要維持的不同的、互相不兼容的標準的需求,從而達到降低開發(fā)成本的目的。

如圖 5?5所示,基于CMSIS標準的軟件架構主要分為以下4層:用戶應用層、操作系統(tǒng)及中間件接口層、CMSIS層、硬件寄存器層。其中CMSIS層起著承上啟下的作用:一方面該層對硬件寄存器層進行統(tǒng)一實現(xiàn),屏蔽了不同廠商對Cortex-M系列微處理器核內外設寄存器的不同定義;另一方面又向上層的操作系統(tǒng)及中間件接口層和應用層提供接口,簡化了應用程序開發(fā)難度,使開發(fā)人員能夠在完全透明的情況下進行應用程序開發(fā)。也正是如此,CMSIS層的實現(xiàn)相對復雜。

圖 5?5 CMSIS標準的軟件架構

層主要分為以下3 個部分:

(1) 核內外設訪問層(CPAL,Core Peripheral Access Layer):該層由ARM 負責實現(xiàn)。包括對寄存器名稱、地址的定義,對核寄存器、NVIC、調試子系統(tǒng)的訪問接口定義以及對特殊用途寄存器的訪問接口(例如:CONTROL,xPSR)定義。由于對特殊寄存器的訪問以內聯(lián)方式定義,所以針對不同的編譯器ARM 統(tǒng)一用來屏蔽差異。該層定義的接口函數(shù)均是可重入的。

(2) 片上外設訪問層(DPAL, Device Peripheral Access Layer):該層由芯片廠商負責實現(xiàn)。該層的實現(xiàn)與CPAL 類似,負責對硬件寄存器地址以及外設訪問接口進行定義。該層可調用CPAL 層提供的接口函數(shù)同時根據(jù)設備特性對異常向量表進行擴展,以處理相應外設的中斷請求。

(3) 外設訪問函數(shù)(AFP, Access Functions for Peripherals):該層也由芯片廠商負責實現(xiàn),主要是提供訪問片上外設的訪問函數(shù),這一部分是可選的。

對一個Cortex-M 微控制系統(tǒng)而言,CMSIS 通過以上三個部分實現(xiàn)了:

l 定義了訪問外設寄存器和異常向量的通用方法;

l 定義了核內外設的寄存器名稱和核異常向量的名稱;

l 為RTOS 核定義了與設備獨立的接口,包括Debug 通道。

這樣芯片廠商就能專注于對其產(chǎn)品的外設特性進行差異化,并且消除他們對微控制器進

行編程時需要維持的不同的、互相不兼容的標準需求,以達到低成本開發(fā)的目的。CMSIS中的具體文件結構如表 5?6所示。

表 5?6 CMSIS文件夾結構

CMSIS

Core

Documentation

CMSIS文檔


CM3

Startup

arm

MDK ARM編譯器啟動文件

startup_stm32f10x_hd.s: 大容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在嵌入式開發(fā)中,STM32的時鐘系統(tǒng)因其靈活性和復雜性成為開發(fā)者關注的焦點。然而,看似簡單的時鐘配置背后,隱藏著諸多易被忽視的陷阱,輕則導致系統(tǒng)不穩(wěn)定,重則引發(fā)硬件損壞。本文從時鐘源選擇、PLL配置、總線時鐘分配等關鍵環(huán)...

關鍵字: STM32 時鐘系統(tǒng)

在嵌入式系統(tǒng)開發(fā)中,STM32系列微控制器的內部溫度傳感器因其低成本、高集成度特性,廣泛應用于設備自檢、環(huán)境監(jiān)測等場景。然而,受芯片工藝差異和電源噪聲影響,其原始數(shù)據(jù)存在±1.5℃的固有誤差。本文從硬件配置、校準算法、軟...

關鍵字: STM32 溫度傳感器

在能源效率與智能化需求雙重驅動下,AC-DC轉換器的數(shù)字控制技術正經(jīng)歷從傳統(tǒng)模擬方案向全數(shù)字架構的深刻變革?;赟TM32微控制器的PFM(脈沖頻率調制)+PWM(脈沖寬度調制)混合調制策略,結合動態(tài)電壓調整(Dynam...

關鍵字: AC-DC STM32

當前智能家居產(chǎn)品需求不斷增長 ,在這一背景下 ,對現(xiàn)有澆花裝置缺陷進行了改進 ,設計出基于STM32單片機的全 自動家用澆花機器人。該設計主要由機械結構和控制系統(tǒng)構成 ,機械結構通過麥克納姆輪底盤與噴灑裝置的結合實現(xiàn)機器...

關鍵字: STM32 麥克納姆輪 安全可靠 通過性強

用c++編程似乎是讓你的Arduino項目起步的障礙嗎?您想要一種更直觀的微控制器編程方式嗎?那你需要了解一下Visuino!這個圖形化編程平臺將復雜電子項目的創(chuàng)建變成了拖動和連接塊的簡單任務。在本文中,我們將帶您完成使...

關鍵字: Visuino Arduino ESP32 STM32

基于STM32與LoRa技術的無線傳感網(wǎng)絡憑借其低功耗、廣覆蓋、抗干擾等特性,成為環(huán)境監(jiān)測、工業(yè)自動化等場景的核心解決方案。然而,如何在復雜電磁環(huán)境中實現(xiàn)高效休眠調度與動態(tài)信道優(yōu)化,成為提升網(wǎng)絡能效與可靠性的關鍵挑戰(zhàn)。本...

關鍵字: STM32 LoRa

在實時控制系統(tǒng)、高速通信協(xié)議處理及高精度數(shù)據(jù)采集等對時間敏感的應用場景中,中斷響應延遲的優(yōu)化直接決定了系統(tǒng)的可靠性與性能上限。STM32系列微控制器憑借其靈活的嵌套向量中斷控制器(NVIC)、多通道直接內存訪問(DMA)...

關鍵字: STM32 DMA

數(shù)字電源技術向高功率密度、高效率與高動態(tài)響應方向加速演進,STM32微控制器憑借其基于DSP庫的算法加速能力與對LLC諧振變換器的精準控制架構,成為優(yōu)化電源動態(tài)性能的核心平臺。相較于傳統(tǒng)模擬控制或通用型數(shù)字控制器,STM...

關鍵字: STM32 數(shù)字電源

STM32微控制器憑借其針對電機控制場景的深度優(yōu)化,成為高精度、高可靠性驅動系統(tǒng)的核心選擇。相較于通用型MCU,STM32在電機控制領域的核心優(yōu)勢集中體現(xiàn)在FOC(磁場定向控制)算法的硬件加速引擎與PWM死區(qū)時間的動態(tài)補...

關鍵字: STM32 電機控制

無線充電技術加速滲透消費電子與汽車電子領域,基于Qi協(xié)議的無線充電發(fā)射端開發(fā)成為智能設備能量補給的核心課題。傳統(tǒng)模擬控制方案存在響應滯后、參數(shù)調整困難等問題,而基于STM32的數(shù)字PID控制結合FOD(Foreign O...

關鍵字: STM32 無線充電
關閉