什么是STM32以及如何學(xué)習(xí)?
一、硬件準(zhǔn)備:
本文引用地址:http://www.butianyuan.cn/article/201610/307401.htm隨著技術(shù)的發(fā)展,單片機(jī)開發(fā)手段也越來越先進(jìn),而價(jià)格卻不斷下降。當(dāng)FLASH型單片機(jī)被廣
泛應(yīng)用后,采用軟件模擬加寫片驗(yàn)證成為一種經(jīng)濟(jì)實(shí)用的實(shí)驗(yàn)方法。而近年來很多單片機(jī)都具有了
ISP功能,只要一根下載線即可以編程,不再需要編程器。
美國SST公司推出的SST系列單片機(jī)更是集成了仿真功能,配合Keil軟件,可使用戶的目標(biāo)板直
接具有仿真功能,將單片機(jī)的易用性推向一個(gè)新的高度。
我們推薦給大家的學(xué)習(xí)單片機(jī)的設(shè)備是:方案1:(1)計(jì)算機(jī)一臺(tái);(2)具有仿真功能的實(shí)
驗(yàn)板一塊,(3)其它如電烙鐵、實(shí)驗(yàn)電源等常規(guī)工具。方案2:(1)計(jì)算機(jī)一臺(tái);(2)下載型實(shí)
驗(yàn)板一塊;(3)下載線一根;(4)其它如電烙鐵、實(shí)驗(yàn)電源等常工具。方案1的特點(diǎn)是實(shí)驗(yàn)板本
身具有仿真能力,性價(jià)比高。方案2價(jià)格略低。如果你想學(xué)單片機(jī),而又不愿做這些投資,我勸你最
好還是放棄,否則可能只會(huì)挫傷你學(xué)習(xí)的積極性和浪費(fèi)你的時(shí)間。好在這些投資并不算多。
二、軟件準(zhǔn)備:單片機(jī)開發(fā)中除必要的硬件外,同樣離不開軟件,Keil軟件是目前最流行開發(fā)
MCS-51系列單片機(jī)的軟件,這從近年來STM32的核心Cortex-M3處理器是一個(gè)標(biāo)準(zhǔn)化的微控制器結(jié)構(gòu),希望思考一下,何為標(biāo)準(zhǔn)化?簡言之,Cortex-M3處理器擁有32位CPU,并行總線結(jié)構(gòu),嵌套中斷向量控制單元,調(diào)試系統(tǒng)以及標(biāo)準(zhǔn)的存儲(chǔ)映射。
嵌套中斷向量控制器(Nested Vector Interrupt Controller,簡稱NVIC)是Cortex-M3處理器中一個(gè)比較關(guān)鍵的組件,它為基于Cortex-M3的微控制器提供了標(biāo)準(zhǔn)的中斷架構(gòu)和優(yōu)秀的中斷響應(yīng)能力,為超過240個(gè)中斷源提供專門的中斷入口,而且可以賦予每個(gè)中斷源單獨(dú)的優(yōu)先級(jí)。利用NVIC從可以達(dá)到極快的中斷響應(yīng)速度,從收到中斷請(qǐng)求到執(zhí)行中斷服務(wù)的第一條指令僅需12個(gè)周期。這種極快的響應(yīng)速度一方面得益于Cortex-M3內(nèi)核對(duì)堆棧的自動(dòng)處理機(jī)制,這種機(jī)制是通過固化在CPU內(nèi)部的微代碼實(shí)現(xiàn)的。另一方面,在中斷請(qǐng)求連續(xù)出現(xiàn)的情況下,NVIC使用一種稱為“尾鏈”的技術(shù),使連續(xù)而來的中斷可以在6個(gè)時(shí)鐘周期內(nèi)得到服務(wù)。在中斷的壓棧階段,更高優(yōu)先級(jí)的中斷可以不耗費(fèi)任何額外的CPU周期就能完成嵌入低優(yōu)先級(jí)中斷的動(dòng)作。具體的細(xì)節(jié)后面我會(huì)繼續(xù)總結(jié)的。用戶可以通過設(shè)置CPU自動(dòng)進(jìn)入低功耗狀態(tài),而使用中斷來將其喚醒,CPU在中斷時(shí)間來臨之前會(huì)一直保持睡眠狀態(tài)。這個(gè)后面我也會(huì)再總結(jié)。
Cortex-M3的CPU支持兩種運(yùn)行模式:線程模式(Thread Mode)與處理模式(Handler Mode)并且需要注意的是,這兩種模式都擁有各自獨(dú)立的堆棧。這種設(shè)計(jì)使得開發(fā)人員可以進(jìn)行更為精密的程序設(shè)計(jì),對(duì)實(shí)時(shí)操作系統(tǒng)的支持也就更好了。
Cortex-M3處理器還包含了一個(gè)24位可自動(dòng)重裝載定的定時(shí)器,可以為內(nèi)核(RTOS)提供一個(gè)周期中斷。
在指令集方面,ARM7和ARM9都有兩種指令集(32位指令集和16位指令集),而Cortex-M3系列處理器支持Thumb-2指令集。由于Thumb-2指令集融合了Thumb指令集和ARM指令集,使得32位指令集的性能和16位指令集的代碼密度之間取得了平衡。
而且,ARM Thumb-2 專門為C/C++編譯器設(shè)計(jì),這就意味著Cortex-M3系列處理器的開發(fā)應(yīng)用可以全部在C語言環(huán)境中完成。
STM32微控制器的推出標(biāo)志著ST公司在兩條產(chǎn)品主線(低價(jià)位主線和高性能主線)上邁出了重大一步。STM32最初發(fā)布時(shí)有14個(gè)不同型號(hào),分為兩個(gè)版本:最高CPU時(shí)鐘為72MHZ的“增強(qiáng)型”和最高CPU時(shí)鐘為36MHZ的“基本型”。這些不同STM32型號(hào)里內(nèi)置的Flash最大可達(dá)
128KB,SRAM最大為20KB,在STM32發(fā)布之初,配置更大Flash,RAM和更復(fù)雜外設(shè)的版本就已經(jīng)在規(guī)劃之中了。不管是什么版本,什么型號(hào)的STM32器件,它們?cè)谝_功能和應(yīng)用軟件上是兼容的。這就使得開發(fā)人員在使用STM32系列微控制器時(shí),不必改動(dòng)PCB就可以根據(jù)需要隨意更換器件型號(hào)。
乍一看STM32的設(shè)備配備,與往日熟悉的51單片機(jī)倒有幾分相似。一般,STM32都會(huì)配備常見外設(shè),諸如多通道ADC,通用定時(shí)器,I2C總線接口,SPI總線接口,CAN總線接口,USB控制器,實(shí)時(shí)時(shí)鐘RTC等。但是,它的每一個(gè)外部設(shè)備都具有獨(dú)特之處。例如,12位精度的ADC具備多種轉(zhuǎn)換模式,并帶有一個(gè)內(nèi)部溫度傳感器,帶有雙ADC的STM32器件,還可以使兩個(gè)ADC同時(shí)工作,從而衍生出了更為高級(jí)的9種轉(zhuǎn)換模式;STM32的每一個(gè)定時(shí)器都具備4個(gè)捕獲比較單元,而且每個(gè)定時(shí)器都可以和另外的定時(shí)器聯(lián)合工作以生成更為精密的時(shí)序;STM32有專門為電機(jī)控制而設(shè)的高級(jí)定時(shí)器,帶有6個(gè)死區(qū)時(shí)間可編程的PWM輸出通道,同時(shí)其帶有的緊急制動(dòng)通道可以在異常情況出現(xiàn)時(shí),強(qiáng)迫PWM信號(hào)輸出保持在一個(gè)預(yù)訂好的安全狀態(tài);SPI接口含有一個(gè)硬件CRC單元,支持8位字節(jié)和16位半字?jǐn)?shù)據(jù)的CRC計(jì)算。在對(duì)SD或MMC等存儲(chǔ)介質(zhì)進(jìn)行數(shù)據(jù)存取時(shí)相當(dāng)有用。
- STM32單片機(jī)中文官網(wǎng)
- STM32單片機(jī)官方開發(fā)工具
- STM32單片機(jī)參考設(shè)計(jì)
評(píng)論