www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導(dǎo)讀]摘要:基于簡(jiǎn)化Codex-M核微控制器嵌入式軟件的開發(fā)步驟,增強(qiáng)軟件可移植性的目的,時(shí)微控制器軟件接口標(biāo)準(zhǔn)(CMSIS)、ST公司標(biāo)準(zhǔn)外設(shè)庫V3.5的文件結(jié)構(gòu)、相互聯(lián)系、功能作用進(jìn)行了簡(jiǎn)要介紹,并以具有Cortex-M3內(nèi)核的ST

摘要:基于簡(jiǎn)化Codex-M核微控制器嵌入式軟件的開發(fā)步驟,增強(qiáng)軟件可移植性的目的,時(shí)微控制器軟件接口標(biāo)準(zhǔn)(CMSIS)、ST公司標(biāo)準(zhǔn)外設(shè)庫V3.5的文件結(jié)構(gòu)、相互聯(lián)系、功能作用進(jìn)行了簡(jiǎn)要介紹,并以具有Cortex-M3內(nèi)核的STM32F103VET6為例,給出了IAR FOR ARM6.30編程環(huán)境下的開發(fā)步驟。結(jié)合具體應(yīng)用,本文對(duì)數(shù)據(jù)端口、中斷進(jìn)行設(shè)置,縮短了開發(fā)時(shí)間,提高了代碼效率。
關(guān)鍵詞:Cortex-M;微控制器;外設(shè)庫;CMSIS

    Stm32f10x系列微控制器具有Cortex-M3內(nèi)核結(jié)構(gòu),它集成了CM3core的中心處理器內(nèi)核和先進(jìn)的系統(tǒng)外設(shè),實(shí)現(xiàn)了內(nèi)置的中斷控制、存儲(chǔ)器保護(hù),以及系統(tǒng)的調(diào)試和跟蹤功能。在進(jìn)行嵌入式系統(tǒng)設(shè)計(jì)時(shí),控制軟件首先需要對(duì)微控制器的啟動(dòng)、系統(tǒng)時(shí)鐘、存儲(chǔ)器映射、中斷向量、異常處理等進(jìn)行設(shè)置,增加了控制軟件的前期開發(fā)時(shí)間,更加造成了初學(xué)者的難度。為了縮短開發(fā)時(shí)間、提高軟件的可移植性,同時(shí)降低開發(fā)成本,ST公司提供了標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)庫,該庫集成了CMSIS文件及微控制器所有外設(shè)驅(qū)動(dòng)函數(shù),由于屏蔽了不同型號(hào)微控制器之間的差異,用戶文件僅需調(diào)用相應(yīng)的庫函數(shù)便可完成系統(tǒng)配置,簡(jiǎn)化了開發(fā)流程,降低了開發(fā)難度。

1 CMSIS文件結(jié)構(gòu)
    CMSIS為Codex微控制器軟件接口標(biāo)準(zhǔn),提供了獨(dú)立于Cortex-M處理器的外設(shè)、實(shí)時(shí)操作系統(tǒng)、中間組件的通用接口方法,解決了軟件組件應(yīng)用于不同Cortex核微控制器時(shí)所帶來的難題,簡(jiǎn)化了軟件復(fù)用,降低了Codex-M上操作系統(tǒng)的移植難度。


    CMSIS的文件結(jié)構(gòu)如圖1所示(以Codex-M3為例),其中stdint.h包括對(duì)8位、16位、32位等類型指示符的定義,主要用來屏蔽不同編譯器之前的差異。core_cm3.h和core_cm3.c中包括Cortex_M3核的全局變量聲明和定義,并定義一些靜態(tài)功能函數(shù)。system_stm32.h和system_ stm 32.c是不同芯片廠商定義的系統(tǒng)初始化函數(shù)SystemInit(),以及一些指示時(shí)鐘的變量。Stm32f10x.h是提供給應(yīng)用程序的頭文件,包含core _cm3.h和system_stm32.h,定義了與特定芯片廠商相關(guān)的寄存器以及各中斷異常號(hào),并可定制M3核中的特殊設(shè)備,如MCU、中斷優(yōu)先級(jí)位數(shù)以及SysTick時(shí)鐘配置。雖然CMSIS提供的文件很多,但在應(yīng)用程序中只需包含h頭文件。

2 標(biāo)準(zhǔn)外設(shè)庫簡(jiǎn)介
    ST官方提供的標(biāo)準(zhǔn)外設(shè)庫文件包括標(biāo)準(zhǔn)外設(shè)庫文件、標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)例程、各種開發(fā)環(huán)境下的模板示例、評(píng)估板專用驅(qū)動(dòng)等幾部分,其中,CMSIS和STM32F10x_StdPeriph_Driver是最重要的部分。STM32F10x_StdPeriph_Driver則包括了微控制器所有外設(shè)對(duì)應(yīng)驅(qū)動(dòng)函數(shù),這些驅(qū)動(dòng)函數(shù)均使用C語言編寫,并提供了統(tǒng)一的函數(shù)調(diào)用接口。Project文件夾中則包括了ST官方的所有例程和基于不同編譯器的項(xiàng)目模板,這些例程是學(xué)習(xí)和使用STM32的重要參考。Utilities包含了相關(guān)評(píng)估板的示例程序和驅(qū)動(dòng)函數(shù),供使用官方評(píng)估板的開發(fā)者使用,其中很多驅(qū)動(dòng)函數(shù)同樣可以作為學(xué)習(xí)的重要參考。


    標(biāo)準(zhǔn)外設(shè)庫文件之間的關(guān)系如圖2所示,每一個(gè)標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)包括源文件stm32f10x_PPP.C和頭文件stm32f10x_ppp.h兩個(gè)文件(PPP表示外設(shè),如GPIO、EXTI、I2C等),源文件中包含了相應(yīng)外設(shè)的所有驅(qū)動(dòng)函數(shù),在misc.c文件中定義了CMSIS功能的一些附加函數(shù),如對(duì)NVIC的配置等。STM32f10x.h為CMSIS Codex-M3設(shè)備外設(shè)訪問層頭文件,包含了STM32F10x全系列所有外設(shè)寄存器的定義(寄存器的基地址和布局)、位定義、中斷向量表、存儲(chǔ)空間的地址映射,以及是否使用標(biāo)準(zhǔn)外設(shè)庫設(shè)置等。System_stm32f10x.C為CMSIS Cortex-M3設(shè)備外設(shè)訪問層系統(tǒng)文件,完成系統(tǒng)初始化及時(shí)鐘配置。Stm32f10x_conf.h為標(biāo)準(zhǔn)外設(shè)驅(qū)動(dòng)配置文件,通過更改包含的外設(shè)頭文件來選擇所使用的外設(shè),在新建程序和進(jìn)行功能變更之前應(yīng)當(dāng)首先修改對(duì)應(yīng)的配置。Stm32f10x_it.c為外設(shè)中斷函數(shù)文件,通過在相應(yīng)位置加入中斷程序代碼執(zhí)行相應(yīng)中斷操作,在實(shí)際應(yīng)用中,中斷函數(shù)也可以設(shè)置在項(xiàng)目主程序文件中,但中斷函數(shù)名必須正確。

3 基于標(biāo)準(zhǔn)外設(shè)庫的實(shí)現(xiàn)步驟
    在IAR FOR ARM6.30編程環(huán)境下,采用V3.50的標(biāo)準(zhǔn)外設(shè)庫,開發(fā)步驟如下:
    1)首先創(chuàng)建一能夠象征項(xiàng)目含義的文件夾(如touch),并在該文件夾下創(chuàng)建名為EVARM和Library的文件夾;
    2)STM32F10x_StdPeriph_Lib_V3.5.0中STM32F10x_StdPeriph_Driver和CMSIS文件夾拷貝到touch目錄下;
    3)將\STM32F10x_StdPeriph_Lib_V350\Project\STM32F10x_StdPeriph_Template下的main.c、stm32f10x_confh、stm32f10x_it.c、stm32f10x_it.h拷貝到touch目錄下;
    4)將\STM32F10x_StdPeriph_Lib_V350\Project\STM32F10x_StdPeriph_Template\EWARM下的stm32f10x_flashcfstm32f10x_flash_ex tsram.icf、stm32f10x_nor.icf、stm32f10x_ram.icf拷貝至/touch/EVARM;
    5)打開IAR Embedded Workbench IDE,創(chuàng)建一個(gè)新的workspace,而后按照模板創(chuàng)建一個(gè)新空白項(xiàng)目;
    6)為項(xiàng)目添加工作組CMSIS、StdPeriph_Driver、EVARM、User、Doc,如圖3所示;


    7)向各工作組添加文件,將core_cm3.c、system_stm32f10x.c添加到CMSIS;將startup_stm32f10x_hd.s添加到EVARM;將misc.c、stm32f10x_rcc.c及所需其它外設(shè)驅(qū)動(dòng)源文件添加到StdPeriph_Driver;將main.c、stm32f10x_it.c添加到User;
    8)在Project→options→C/C++Compiler→Preprocessor中設(shè)置、添加編譯搜索路徑,最好包括所有項(xiàng)目中所調(diào)用文件的路徑,否則需要在源文件中給出被調(diào)文件的完整路徑;
    9)在Project→options→Ceneral Options→Target標(biāo)簽頁選擇相應(yīng)器件;
    10)勾選Project→Options→General Options→Library Configuration→Use CMSIS選項(xiàng);
    11)在stm32f10x.h文件中配置控制器啟動(dòng)文件,根據(jù)所選用產(chǎn)品系列,去掉相應(yīng)注釋即可,如令#defineSTM32F10X_HD有意義;同時(shí),去掉/*#define USE_STDPERIPH_DRIVER*/的注釋,表示使用標(biāo)準(zhǔn)外設(shè)庫;
    12)選擇使用HSI或HSE,system_stm32f10x.c中相關(guān)程序代碼段如下:

    
    在不進(jìn)行任何改動(dòng)情況下,系統(tǒng)默認(rèn)使用HIS作為系統(tǒng)時(shí)鐘,如使用HSE作為系統(tǒng)時(shí)鐘,則需將/*#define SYSCLK_FREQ_HSE HSE_VALU E*/的注釋去掉,屏蔽HSI頻率定義項(xiàng),同時(shí)根據(jù)所用外部晶振頻率在stm32f10x.h中重新定義HSE_VALUE的數(shù)值。
    13)對(duì)main.c文件內(nèi)容進(jìn)行修改,但須保留#include“stm32f10x.h”,編譯、連接項(xiàng)目文件后生成可執(zhí)行代碼;
    14)在仿真器編譯環(huán)境下,進(jìn)行系統(tǒng)調(diào)試。

4 應(yīng)用實(shí)例
    采用STM32F103VET6微控制器實(shí)現(xiàn)LCD顯示器的各種操作,LCD顯示器采用北京寧和公司的480×234TFT256色顯示器,配套控制器為NHC_ 36。微控制器PD口高8位作為數(shù)據(jù)口,PB15、PB14、PC6、PC7、PC8分別作為A0、WR、A1、CS、RD的控制信號(hào),當(dāng)PBO引腳電平在下降沿時(shí)觸發(fā)外部中斷線0中斷,在顯示器上繪制一條直線。建立項(xiàng)目步驟如3所述,將中斷函數(shù)設(shè)置在主程序文件中,使用HSE為系統(tǒng)時(shí)鐘,本文且未對(duì)LCD操作函數(shù)進(jìn)行說明,僅給出利用標(biāo)準(zhǔn)外設(shè)庫進(jìn)行端口及中斷設(shè)置的代碼。
    微控制器I/O口配置程序代碼如下:

    為了將PB0配置為中斷輸入且中斷有效,須開啟PB口I/O時(shí)鐘及AFIO時(shí)鐘,中斷配置代碼如下:


    在主程序中設(shè)置循環(huán)狀態(tài)以等待中斷,當(dāng)PB0口由高電平跳變?yōu)榈碗娖綍r(shí),觸發(fā)中斷,調(diào)用外部中斷線0中斷函數(shù)。具體應(yīng)用中,如果有多個(gè)中斷源可以觸發(fā)該外部中斷,還須判斷中斷標(biāo)志位以確定執(zhí)行何種操作。

5 結(jié)束語
    文中介紹了ST公司V3.50標(biāo)準(zhǔn)外設(shè)庫的文件架構(gòu)和相互聯(lián)系,基于IAR FOR ARM6.30開發(fā)環(huán)境給出了參考編程步驟,并根據(jù)實(shí)例設(shè)計(jì)了具體的程序代碼。采用標(biāo)準(zhǔn)外設(shè)庫進(jìn)行嵌入式軟件開發(fā),無需太多了解微處理器底層硬件結(jié)構(gòu),只要具有C/C++軟件基礎(chǔ),根據(jù)本文介紹的參考步驟,便可開發(fā)出高效直觀的程序代碼。

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

舍弗勒以"專注驅(qū)動(dòng)技術(shù)的科技公司"為主題亮相IAA MOBILITY 2025(B3館B40展臺(tái)) 合并緯湃科技后首次亮相IAA MOBILITY,展示拓展后的汽車產(chǎn)品組合 憑借在軟件、...

關(guān)鍵字: 電氣 軟件 驅(qū)動(dòng)技術(shù) BSP

香港2025年 9月12日 /美通社/ -- 全球領(lǐng)先的互聯(lián)網(wǎng)社區(qū)創(chuàng)建者 - 網(wǎng)龍網(wǎng)絡(luò)控股有限公司 ("網(wǎng)龍"或"本公司",香港交易所股票代碼:777)欣然宣布,其子公司My...

關(guān)鍵字: AI 遠(yuǎn)程控制 控制技術(shù) BSP

深圳2025年9月11日 /美通社/ -- 2025 年 9 月 10 日,第 26 屆中國(guó)國(guó)際光電博覽會(huì)(簡(jiǎn)稱 "CIOE 中國(guó)光博會(huì)")在深圳盛大開幕。本屆展會(huì)吸引力再創(chuàng)新高,全球超3800家優(yōu)質(zhì)...

關(guān)鍵字: 自動(dòng)化 光電 CIO BSP

天津2025年9月11日 /美通社/ -- 國(guó)際能源署(IEA)數(shù)據(jù)顯示,2024 年全球數(shù)據(jù)中心電力消耗達(dá) 415 太瓦時(shí),占全球總用電量的 1.5%,預(yù)計(jì)到 2030 年,這一數(shù)字將飆升至 945 太瓦時(shí),近乎翻番,...

關(guān)鍵字: 模型 AI 數(shù)據(jù)中心 BSP

北京2025年9月11日 /美通社/ -- 國(guó)際9月11日上午,2025年中國(guó)國(guó)際服務(wù)貿(mào)易交易會(huì)(以下簡(jiǎn)稱"服貿(mào)會(huì)")—體育賽事經(jīng)濟(jì)高質(zhì)量發(fā)展大會(huì)現(xiàn)場(chǎng),北京經(jīng)濟(jì)技術(shù)開發(fā)區(qū)工委委員、管委會(huì)副主...

關(guān)鍵字: 5G BSP GROUP MOTOR

全新原生集成方案實(shí)現(xiàn)企業(yè)短信服務(wù)的簡(jiǎn)化、強(qiáng)化與規(guī)模化升級(jí) 馬來西亞吉隆坡2025年9月11日 /美通社/ -- 全球云通信平臺(tái)Infobip宣布擴(kuò)展與微軟Azure通信服務(wù)的集成合作,通過其先進(jìn)的短信接口,助力企業(yè)與全...

關(guān)鍵字: 微軟 通信 IP AZURE

-CAS推出CAS IP Finder,旨在改進(jìn)知識(shí)產(chǎn)權(quán)搜索 AI增強(qiáng)解決方案深化搜索功能,優(yōu)化用戶體驗(yàn)  俄亥俄州哥倫布2025年9月9日 /美通社/ --...

關(guān)鍵字: FINDER IP ST AI

柏林2025年9月9日 /美通社/ -- 2025年9月5日,納斯達(dá)克上市公司優(yōu)克聯(lián)集團(tuán)(NASDAQ: UCL)旗下全球互聯(lián)品牌GlocalMe,正式亮相柏林國(guó)際消費(fèi)電子展(IFA 2025),重磅推出融合企...

關(guān)鍵字: LOCAL LM BSP 移動(dòng)網(wǎng)絡(luò)

深圳2025年9月9日 /美通社/ -- PART 01活動(dòng)背景 當(dāng)技術(shù)的鋒芒刺穿行業(yè)壁壘,萬物互聯(lián)的生態(tài)正重塑產(chǎn)業(yè)疆域。2025年,物聯(lián)網(wǎng)產(chǎn)業(yè)邁入?"破界創(chuàng)造"與"共生進(jìn)化"?的裂變時(shí)代——AI大模型消融感知邊界,...

關(guān)鍵字: BSP 模型 微信 AIOT

"出海無界 商機(jī)無限"助力企業(yè)構(gòu)建全球競(jìng)爭(zhēng)力 深圳2025年9月9日 /美通社/ -- 2025年8月28日, 由領(lǐng)先商業(yè)管理媒體世界經(jīng)理人攜手環(huán)球資源聯(lián)合主辦、深圳?前海出海e站通協(xié)辦的...

關(guān)鍵字: 解碼 供應(yīng)鏈 AI BSP
關(guān)閉