版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
新一代嵌入式微處理器STM32F103開發(fā)與應(yīng)用摘要:基于Cortex-M3內(nèi)核的STM32F103系列芯片是新型的32位嵌入式微處理器,它是不需操作系統(tǒng)的ARM,其性能遠(yuǎn)高于51系列單片機(jī),但開發(fā)過程與51系列單片機(jī)一樣簡(jiǎn)便,因而在很多應(yīng)用場(chǎng)合可替代51系列單片機(jī)。本文從STM32F103系列芯片性能特點(diǎn)和片上資源入手,重點(diǎn)介紹其開發(fā)工具以及開發(fā)流程。并以溫度測(cè)量為例,具體說明了基于Keil?Vision4軟件的工程建立、源程序編輯、編譯,基于J-Link仿真器的程序下載,程序在線調(diào)試,片上運(yùn)行等過程,最終測(cè)量的溫度轉(zhuǎn)換為數(shù)字量,通過串口發(fā)送至PC機(jī)顯示。1引言嵌入式微處理器正越來越廣泛的應(yīng)用在生產(chǎn)生活的各個(gè)領(lǐng)域,但是傳統(tǒng)的嵌入式微處理器要么是8位的處理器,性能有限,要么是32位基于ARM的微處理器在使用上需要嵌入式操作系統(tǒng)的支持,比如Linux操作系統(tǒng),使得系統(tǒng)不夠精煉。這一情況直到ARM公司推出Cortex-M內(nèi)核才得以改善,它無需操作系統(tǒng),可以像單片機(jī)一樣使用KeilC語(yǔ)言進(jìn)行編程,極大的減少了開發(fā)者的工作量。坤年6月,ST公司及時(shí)推出了一款基于Cortex-M3內(nèi)核的新型ARM處理器:STM32系列微處理器。本文以stm32F103處理器為例,列舉了開發(fā)需要用到的各種軟硬件資源及其作用,較詳細(xì)介紹了處理器開發(fā)使用方法,隨后具體到以溫度傳感器檢測(cè)溫度這一實(shí)際應(yīng)用,給開發(fā)者提供一個(gè)更加直觀的印象,目的就是讓開發(fā)者能盡快了解熟悉該處理器的特點(diǎn),掌握該系列處理器的開發(fā)使用方法。2STM32F103系列微處理器簡(jiǎn)介STM32F103系列微處理器是首款基于ARMv7-M體系結(jié)構(gòu)的32位標(biāo)準(zhǔn)RISC(精簡(jiǎn)指令集)處理器,提供很高的代碼效率,在通常8位和16位系統(tǒng)的存儲(chǔ)空間上發(fā)揮了ARM內(nèi)核的高性能。該系列微處理器工作頻率為72MHz,內(nèi)置高達(dá)128K字節(jié)的Flash存儲(chǔ)器和20K字節(jié)的SRAM,具有豐富的通用I/O端口。作為最新一代的嵌入式ARM處理器,它為實(shí)現(xiàn)MCU的需要提供了低成本的平臺(tái)、縮減的引腳數(shù)目、降低的系統(tǒng)功耗,同時(shí)提供了卓越的計(jì)算性能和先進(jìn)的中斷響應(yīng)系統(tǒng)。豐富的片上資源使得STM32F103系列微處理器在多種領(lǐng)域如電機(jī)驅(qū)動(dòng)、實(shí)時(shí)控制、手持設(shè)備、PC游戲外設(shè)和空調(diào)系統(tǒng)等都顯示出了強(qiáng)大的發(fā)展?jié)摿?。STM32F103系列微處理器主要資源和特點(diǎn)如下:(1) 多達(dá)51個(gè)快速I/O端口,所有I/O口均可以映像到16個(gè)外部中斷,幾乎所有端口都允許5V信號(hào)輸入。每個(gè)端口都可以由軟件配置成輸出(推挽或開漏)、輸入(帶或不帶上拉或下拉)或其它的外設(shè)功能口。(2)2個(gè)12位模數(shù)轉(zhuǎn)換器,多達(dá)16個(gè)外部輸入通道,轉(zhuǎn)換速率可達(dá)1MHz,轉(zhuǎn)換范圍為0~36V;具有雙采樣和保持功能;內(nèi)部嵌入有溫度傳感器,可方便的測(cè)量處理器溫度值。(3) 靈活的7路通用DMA可以管理存儲(chǔ)器到存儲(chǔ)器、設(shè)備到存儲(chǔ)器和存儲(chǔ)器到設(shè)備的數(shù)據(jù)傳輸,無須CPU任何干預(yù)。通過DMA可以使數(shù)據(jù)快速地移動(dòng),這就節(jié)??CPU的資源來進(jìn)行其他操作。DMA控制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_(dá)緩沖區(qū)結(jié)尾時(shí)所產(chǎn)生的中斷。它支持的外設(shè)包括:定時(shí)器、ADC、SPI、I2C和USART等。(4)調(diào)試模式:支持標(biāo)準(zhǔn)的20腳JTAG仿真調(diào)試以及針對(duì)Cortex-M3內(nèi)核的串行單線調(diào)試(SWD)功能。通常默認(rèn)的調(diào)試接口是JTAG接口。(5) 內(nèi)部包含多達(dá)7個(gè)定時(shí)器,具體名稱和功能如表1所示。(6) 含有豐富的通信接口:三個(gè)USART異步串行通信接口、兩個(gè)I2C接口、兩個(gè)SPI接口、一個(gè)CAN接口和一個(gè)USB接口,為實(shí)現(xiàn)數(shù)據(jù)通信提供了保證。表1各個(gè)定時(shí)器名稱及其作用名稱數(shù)目作用通用定時(shí)器16位定時(shí)器.每個(gè)定時(shí)器有4個(gè)用于輸入捕魏輸出比較4WM或麻沖計(jì)數(shù)的通道高黜制定時(shí)器116位6通道高級(jí)控融定時(shí)器,可以控制6路ra輸出成形可選擇邊緣或中間對(duì)齊,并且?guī)в兴绤^(qū)控制、緊急制動(dòng)等功能看門齪時(shí)器2分為獨(dú)立看門淅和窗口看門狗;獨(dú)立看n狗可以用于在發(fā)生問題時(shí)復(fù)位整個(gè)系究或作為一個(gè)自由定時(shí)器為應(yīng)用程序"覷節(jié)也制請(qǐng)頃具脾期預(yù)警中斷功能'用于在發(fā)生問題時(shí)復(fù)位整個(gè)系統(tǒng)系統(tǒng)時(shí)基定時(shí)器124位的數(shù)器性要用于實(shí)時(shí)操作就亦可作為一個(gè)標(biāo)準(zhǔn)的遞浦計(jì)數(shù)器3開發(fā)工具和流程3.1開發(fā)工具對(duì)STM32F103系列MPU開發(fā)前,需要準(zhǔn)備相應(yīng)的軟硬件。其中硬件主要包括STM32F103開發(fā)板(或用戶目標(biāo)板)、J-Link下載仿真器等;軟件主要包括KeilVision4IDE開發(fā)平臺(tái)。下面對(duì)各自的功能和特點(diǎn)做簡(jiǎn)要說明。STM32F103開發(fā)板(或用戶目標(biāo)板)是開發(fā)目標(biāo)對(duì)象。J-Link下載仿真器是程序下載的樞紐,它帶有的標(biāo)準(zhǔn)20芯扁平電纜可將程序通過JTAG接口下載到處理器內(nèi)部存儲(chǔ)空間;無需外部供電,用USB連接線與PC機(jī)連接好后即可工作;還具有下載速度快、功耗低的特點(diǎn)。KeilVision4IDE是一個(gè)基于窗口的軟件開發(fā)平臺(tái),它集成了強(qiáng)大而且現(xiàn)代化的編輯器、工程管理器和make工具,幾乎集成了嵌入式系統(tǒng)開發(fā)所需的全部工具:C/C++編譯器、宏匯編器、鏈接/定位器、HEX文件生成器等。該軟件提供了兩種工作模式:編譯和調(diào)試模式。在編譯模式中,開發(fā)者可以創(chuàng)建工程、選擇目標(biāo)器件、新建文件、輸入源代碼、生成可執(zhí)行文件;調(diào)試模式中,開發(fā)者可以利用其強(qiáng)大的集成調(diào)試器對(duì)應(yīng)用程序進(jìn)行調(diào)試,如設(shè)置斷點(diǎn)、單步執(zhí)行等,方便了程序錯(cuò)誤的查找和修改。3.2開發(fā)流程用J-Link仿真器將PC機(jī)和STM32F103開發(fā)板連接起來。使用KeilVision4IDE開發(fā)平臺(tái)創(chuàng)建新工程,編寫源程序。打開KeilVision4軟件,創(chuàng)建新的工程文件,為該工程選擇器件:STMicroelectronics公司的STM32F103R8芯片,單擊確定后會(huì)彈出對(duì)話框,提示是否選擇將啟動(dòng)代碼添加到目標(biāo)工程。啟動(dòng)代碼用來完成系統(tǒng)的初始化工作,對(duì)于嵌入式系統(tǒng)來說是必不可少的。選擇??是將啟動(dòng)代碼加入到目標(biāo)工程,這樣可以大大節(jié)省啟動(dòng)代碼的編寫工作。工程創(chuàng)建完畢后,即可在該工程下新建C文件,編寫源程序,完成后將其添加到工程中。最后將庫(kù)文件STM32F10xRLIB和STM32F10xDLIB也添加到工程中。至此,程序創(chuàng)建工作結(jié)束。所需源文件及功能如表2示。表2完整工程所需文件文件備注§tn32fl(ksCPU相關(guān)啟動(dòng)代晚初始化目標(biāo)設(shè)備蜩置啟褂鏘工程創(chuàng)建時(shí)按提示瀏唧可miihc主程牌系統(tǒng)時(shí)鍬通用I/0U、中斷控制器等m主醐文件,由開發(fā)者自醐寫&to32fl0vitc齡了所有的中眥理程序(所有函辨醐為空)該文胸麴立Hi取也啊合并細(xì)如醐文件中W32F10ALBS1M32F10X系列姻器幗件庫(kù),定義了片上外腳楠腳物及基本蹣數(shù)這兩個(gè)庫(kù)文件均位于KeilURM\RV31\LB\ST1STSIM32F10^LB程序的編譯、下載、仿真和調(diào)試等。程序編寫完成后即可編譯文件,編譯無錯(cuò)誤后選擇Options選項(xiàng),在Debug程序編譯鏈接成功之后,選擇Project/OptionsforTarge,t打開對(duì)話框后,選擇Debug選項(xiàng)卡,在Use下拉按鈕中選擇Cortex-M3J-Link,選擇好后點(diǎn)擊settings,在彈出的對(duì)話框中點(diǎn)擊Add按鈕,選擇STM32F10xMed-densityFlash。點(diǎn)擊OK完成配置。通過Load即可將程序下載到目標(biāo)器件中。如圖1所示。如果需要對(duì)程序進(jìn)行在線調(diào)試,選擇Start/StopDebugSession,這時(shí)可以插入斷點(diǎn)、設(shè)置指針、單步執(zhí)行、復(fù)位等,還可以觀察各個(gè)寄存器值的變化,進(jìn)行波形仿真。總之可以很方便的在線調(diào)試程序。4應(yīng)用程序開發(fā)實(shí)例下面以溫度測(cè)量為例,具體介紹STM32F103處理器的開發(fā)使用方法。該處理器帶有12位逐次逼近式ADC,其輸入量程為VREF-~VREF+,在LQFP64引腳或更少的引腳封裝形式中,它們?cè)谛酒瑑?nèi)部與ADC的地VSSA和電源VDDA相連。由于STM32處理器在本設(shè)計(jì)中采用33V電壓供電,因此其輸入量程為0~33V。處理器內(nèi)部自帶一個(gè)溫度傳感器,它感知到MPU周圍的溫度變化,將其轉(zhuǎn)化為電壓的變化。該傳感器的溫度適應(yīng)范圍很寬,可以測(cè)量-40°C~+125°C之間變化的溫度值,轉(zhuǎn)換精度為±1.5C,能夠較好的滿足溫度測(cè)量的任務(wù)。4.1AD轉(zhuǎn)換和數(shù)據(jù)傳輸通常情況下,內(nèi)部溫度傳感器是關(guān)閉的,為了使其正常工作,首先需要選擇ADC—IN16通道,因?yàn)樵撏ǖ朗莾?nèi)部通道,與溫度傳感器直接相連,其次要設(shè)置相關(guān)功能寄存器ADC_CR2的TSVREFE位,開啟溫度傳感器和VREFINT通道。編寫mainc文件時(shí),首先配置系統(tǒng)時(shí)鐘,然后進(jìn)行引腳配置,主要是為串口數(shù)據(jù)發(fā)送和接收配置引腳,本設(shè)計(jì)采用通用I/O口PB10作為串口發(fā)送引腳,配置為推挽式輸出,速度為50MHz;將通用I/O口PB11作為串口接收引腳,浮空輸入模式。然后配置串口工作方式及中斷,設(shè)置波特率為9600Baud、8位數(shù)據(jù)位、無校驗(yàn)位、1位停止位、無硬件流控制。然后使能串口的中斷、發(fā)送、接收。將AD轉(zhuǎn)換通道設(shè)為通道16,使能溫度傳感器。檢測(cè)到ADC校準(zhǔn)寄存器復(fù)位完成后,啟動(dòng)ADC校準(zhǔn),校準(zhǔn)完成后軟件觸發(fā)啟動(dòng)ADC轉(zhuǎn)換。設(shè)置while無限循環(huán),等待串口中斷,在中斷程序stm32f10x_itc文件中,將轉(zhuǎn)換結(jié)果數(shù)據(jù)通過串口發(fā)送到PC機(jī)。流程圖如圖2所示。圖1Dubug選項(xiàng)的配置圖2溫度測(cè)量流程圖出于STM32的溫度檢測(cè)方*型口設(shè)霓串口號(hào)|C0M1 _*袖特率|9G0 型口設(shè)霓串口號(hào)|C0M1 _*袖特率|9G0 3校騙位NONE:教據(jù)位|8一二|停止但一■I —I打開卒口成功!06十六歪制1D十遂制電始溫度發(fā)送1773114284423028120:25.3622365&&23Z6搦哎退出圖3C++Buider顯示界面4.2顯示界面的設(shè)計(jì)在PC機(jī)上,使用C++Builder軟件制作顯示界面。編寫串口接收程序,將串口設(shè)置與發(fā)端一致,接收數(shù)據(jù)時(shí)以雙字節(jié)十六進(jìn)制形式接收。接收到的數(shù)據(jù)大小介于0~0X0FFF之間,換算為十進(jìn)制數(shù)介于0~4095之間。由于VREF-=0V,VREF+=3.3V,因此,根據(jù)數(shù)值和電壓值的關(guān)系算得當(dāng)前電壓值。VSENSE=Data/4096*3.3V。比如,若當(dāng)前得到十進(jìn)制數(shù)值為1773,則根據(jù)上述公式算得當(dāng)前電壓為1.428V。得到電壓值之后,由公式:TA={(V25-VSENSE)/Avg_Slope}+25可進(jìn)一步算出當(dāng)前溫度值。其中,V25為VSENSE在25°C時(shí)的大小,其值為1.43V;Avg_Slope為溫度與VSENSE曲線的平均斜率,大小為4.3mV/C。根據(jù)上例得出的當(dāng)前電壓1428V,可推算得溫度值為25.36C。得出結(jié)果的同時(shí)將該溫度值在該界面中顯示出來。結(jié)果顯示如圖3所示。5結(jié)束語(yǔ):基于Cortex-M3內(nèi)核的STM32F103系列處理器是新型的嵌入式微處理器,它在各方面指標(biāo)上都遠(yuǎn)遠(yuǎn)優(yōu)于51系列單片機(jī)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏買賣合同范本
- 廣州公積金 租賃合同
- 韓國(guó)租房合同模板
- 合同到期自我評(píng)價(jià)個(gè)人總結(jié)簡(jiǎn)短
- 2024市舊機(jī)動(dòng)車買賣合同
- 智慧交警建設(shè)方案
- 全國(guó)造價(jià)工程師注冊(cè)管理系統(tǒng)詳解
- 2024電器產(chǎn)品代理合同
- 2024制造行業(yè)合同管理系統(tǒng)解決方案
- 2024個(gè)人房屋裝修合同范文
- 叩背的護(hù)理方法
- 【語(yǔ)文全冊(cè)知識(shí)點(diǎn)梳理】六年級(jí)上冊(cè)語(yǔ)文全冊(cè)知識(shí)點(diǎn)2024
- 【基于西門子s7-1200PLC的變頻調(diào)速電梯電氣控制系統(tǒng)設(shè)計(jì)9700字(論文)】
- 中國(guó)高血壓防治指南(2024年修訂版)圖文解讀
- (正式版)QB∕T 8049-2024 家用和類似用途微壓富氧艙
- 政協(xié)委員個(gè)人簡(jiǎn)歷范文
- 2024風(fēng)力發(fā)電機(jī)組預(yù)應(yīng)力基礎(chǔ)錨栓籠組合件技術(shù)規(guī)范
- 商業(yè)充電樁轉(zhuǎn)讓合同范本
- 2024年高考語(yǔ)文新高考Ⅰ卷試卷評(píng)析及備考策略
- 消防安全專項(xiàng)整治方案及措施
- 我國(guó)跨文化傳播研究的文獻(xiàn)綜述以中國(guó)跨文化傳播研究為背景
評(píng)論
0/150
提交評(píng)論