版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2章 STM32應(yīng)用基礎(chǔ)第2章
STM32應(yīng)用基礎(chǔ)STM32系列處理器選型指南STM32系列處理器內(nèi)部結(jié)構(gòu)STM32系列處理器的電源管理STM32系列處理器的時(shí)鐘系統(tǒng)STM32系列處理器的存儲(chǔ)結(jié)構(gòu)與映射第2章 STM32應(yīng)用基礎(chǔ)2.1
STM32系列處理器選型指南2.1.1
STM32系列處理器的命名規(guī)則STM32系列處理器的命名由9段信息組成。其命名規(guī)則如圖2.1所示。第2章 STM32應(yīng)用基礎(chǔ)圖2.1
STM32系列處理器的命名規(guī)則第2章 STM32應(yīng)用基礎(chǔ)2.1.2
STM32系列處理器的選型目前STM32系列處理器中已經(jīng)包含了多個(gè)子系列,其中有:STM32F101XX系列單片機(jī)、STM32F102XX系列處
理器、STM32F103XX系列處理器、STM32F105XX系列處
理器、STM32F107XX系列處理器。根據(jù)系統(tǒng)對(duì)硬件資源的實(shí)際需求進(jìn)行STM32處理器的選型操作。在表2.1、表2.2、表2.3中,選取了STM32系列處理器常用型號(hào)、引腳、封裝、接口和特性等參數(shù),以供用戶查閱和選型。第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)2.1.3
STM32系列處理器的引腳信息STM32系列處理器雖然在硬件資源上類似,但在引腳排列及封裝上并不完全一致。在系統(tǒng)硬件構(gòu)建中(尤其在
PCB電路板的設(shè)計(jì)中),除原理功能的設(shè)計(jì)外,對(duì)封裝的了解尤為重要。典型的有LQFP48、LQFP64、LQFP100、
LQFP144、VFQFPN36、BGA100、BGA144等,圖2.2、圖2.3列出了STM32常用器件外型封裝與尺寸。第2章 STM32應(yīng)用基礎(chǔ)圖2.2
STM32常用的4種外型封裝圖第2章 STM32應(yīng)用基礎(chǔ)圖2.3
STM32常用的3種外型封裝圖第2章 STM32應(yīng)用基礎(chǔ)通常,STM32處理器中的引腳絕大部分都可復(fù)用(即I/O功能和其他功能共同復(fù)用一個(gè)引腳),對(duì)于數(shù)字接口大部分可容忍5V電壓的上限,但作為模擬信號(hào)輸入的引腳則最高不得超過3.3V電壓。因此,在進(jìn)行ADC操作的電路設(shè)計(jì)中,需要特別注意。在應(yīng)用中,除了處理器封裝的差異外,同一款型號(hào)的處理器芯片也可能存在不同的引腳數(shù)目,對(duì)于產(chǎn)品的設(shè)計(jì)不僅要了解封裝,還要了解同一種型號(hào)不同封裝的引腳功能和定義(附錄圖A1~圖A7是常用7種器件引腳排列)。表2.4列出了STM32F103xx系列處理器引腳功能與定義。第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)注:(1)WKUP/USART2_CTS,ADC123_IN0,TIM2_CH1_ETR,TIM5_CH1,TIM8_ETR;USART2_RTS,ADC123_IN1,TIM5_CH2,TIM2_CH2;USART2_TX,TIM5_CH3,ADC123_IN2,TIM2_CH3;USART2_RX,TIM5_CH4,ADC123_IN3,TIM2_CH4;SPI1_NSS,USART2_CK,DAC_OUT1,ADC12_IN4;SPI1_SCK,DAC_OUT2,
ADC12_IN5;SPI1_MISO,TIM8_BKIN,DC12_IN6,TIM3_CH1;SPI1_MOSI,TIM8_CH1N,ADC12_IN7;ADC12_IN8,TIM3_CH3,TIM8_CH2N;ADC12_IN9,TIM3_CH4,TIM8_CH3N;I2C2_SCL,USART3_TX;I2C2_SDA,USART3_RX;SPI2_NSS,I2S2_WS,I2C2_SMBA,USART3_CK,TIM1_BKIN;SPI2_SCK/I2S2_CK,USART3_CTS,TIM1_CH1N;SPI2_MISO,TIM1_CH2N,USART3_RTS;SPI2_MOSI,I2S2_SD,TIM1_CH3N;I2S2_MCK,TIM8_CH1,SDIO_D6;I2S3_MCK,TIM8_CH2,SDIO_D7;第2章 STM32應(yīng)用基礎(chǔ)USART1_CK,TIM1_CH1,MCO;USART1_TX,TIM1_CH2;USART1_RX,TIM1_CH3;USART1_CTS,USBDM,CAN_RX,TIM1_CH4;USART1_RTS,USBDP,CAN_TX,TIM1_ETR;SPI3_NSS,I2S3_WS;TIM2_CH1_ETR,PA15,SPI1_NSS;TIM3_ETR,UART5_RX,SDIO_CMD;FSMC_NCE4_1,F(xiàn)SMC_NE3;SPI3_SCK,I2S3_CK;PB3,TRACESWO,TIM2_CH2,SPI1_SCK;PB4,TIM3_CH1,SPI1_MISO;I2C1_SMBA,SPI3_MOSI,I2S3_SD;TIM3_CH2,SPI1_MOSI;I2C1_SCL,TIM4_CH1;I2C1_SDA,F(xiàn)SMC_NADV,TIM4_CH2;TIM4_CH3,SDIO_D4;I2C1_SCL,CAN_RX;TIM4_CH4,SDIO_D5;I2C1_SDA,CAN_TX;第2章 STM32應(yīng)用基礎(chǔ)2.2
STM32系列處理器內(nèi)部結(jié)構(gòu)STM32(CM3)是32位微處理器,即它的數(shù)據(jù)總線寬度是32位。在STM32系列ARM處理器中,包含一個(gè)支持JTAG仿真的Cortex-M3處理器、與片內(nèi)的存儲(chǔ)控制器接口的局部總線、與中斷控制器接口的高性能總線AHB
(Advanced
High
performance
Bus)和連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線VPB
(VLSI
Peripheral
Bus)。除了中斷控制器DMA以外,其余都連接到了VPB總線上。通常STM32系列處理器的系統(tǒng)主要包括以下幾部分。5個(gè)驅(qū)動(dòng)單元。分別為Cortex-M3內(nèi)核指令總線I-bus、數(shù)據(jù)總線D-bus、系統(tǒng)總線S-bus、外部專用外設(shè)總線和內(nèi)部專用外設(shè)總線。3個(gè)被動(dòng)單元。分別為內(nèi)部SRAM、內(nèi)部閃存存儲(chǔ)器以及AHB到APB橋。該橋主要用來(lái)連接所有的APB設(shè)備。第2章 STM32應(yīng)用基礎(chǔ)I-bus總線是32位的AHB總線,對(duì)程序存儲(chǔ)器空間
(0x00000000~0x1FFFFFFF)的取指和取向量在此總線上完成。所有取指都是按字來(lái)操作的,每個(gè)字的取指數(shù)目取決于運(yùn)行的代碼和存儲(chǔ)器中代碼的對(duì)齊情況。D-bus總線是32位的AHB總線,對(duì)程序存儲(chǔ)器空間(0x00000000~0x1FFFFFFF)的取數(shù)據(jù)和調(diào)試訪問在此總線上完成。數(shù)據(jù)訪問的優(yōu)先級(jí)比調(diào)試訪問要高,因此當(dāng)總線上同時(shí)出現(xiàn)內(nèi)核訪問和調(diào)試訪問時(shí),必須在內(nèi)核訪問結(jié)束后才開始調(diào)試訪問。第2章 STM32應(yīng)用基礎(chǔ)S-bus系統(tǒng)總線是32位的AHB總線,對(duì)系統(tǒng)存儲(chǔ)空間(0x20000000~0xDFFFFFFF,0xE0100000~0xFFFFFFFF)的取指、取向量及數(shù)據(jù)和調(diào)試訪問在此總線上完成。系統(tǒng)總線用于訪問內(nèi)存和外設(shè),覆蓋的區(qū)域包括SRAM、片上外設(shè)、片外RAM、片外擴(kuò)展設(shè)備及系統(tǒng)級(jí)存儲(chǔ)區(qū)的部分空間。系
統(tǒng)總線包含處理不對(duì)齊訪問、FPB重新映射訪問、bit-band訪問及流水線取指的控制邏輯。外部專用外設(shè)總線是APB總線,對(duì)STM32處理器外設(shè)存儲(chǔ)空間(0xE0040000~0xE00FFFFF)的取數(shù)據(jù)和調(diào)試訪問在此總線上完成。該總線用于STM32外部的APB設(shè)備、嵌入式跟蹤宏單元(ETM)、跟蹤端口接口單元(TPIU)和ROM表,也用于片外外設(shè)。第2章 STM32應(yīng)用基礎(chǔ)內(nèi)部專用外設(shè)總線是AHB總線,對(duì)CM3處理器內(nèi)部外設(shè)存儲(chǔ)
空間(0xE0000000~0xE003
FFFF)的取數(shù)據(jù)和調(diào)試訪問在此總線上完成。該總線用于訪問嵌套向量中斷控制器(NVIC)、數(shù)據(jù)觀察和觸發(fā)(DWT)、Flash修補(bǔ)和斷點(diǎn)(FPB)及存儲(chǔ)器保護(hù)單元(MPU)。STM32F103xC/D/E系列處理器的總體結(jié)構(gòu)如圖2.4所示。內(nèi)部總線和兩條APB總線將片上系統(tǒng)和外部設(shè)備資源緊密連接起來(lái),其中內(nèi)部總線是主系統(tǒng)總線,連接了CPU、存儲(chǔ)器和系統(tǒng)時(shí)鐘信
號(hào)。APB2總線連接高速外設(shè),APB1總線連接較低速外設(shè)。在APB2總線下有通用數(shù)字輸入/輸出端口PA[15:0]、PB[15:0]、PC[15:0]、PD[15:0]、PE[15:0]、PF[15:0]、PG[15:0]、定時(shí)計(jì)數(shù)器TIM1、定時(shí)計(jì)數(shù)器TIM8、高速SPI1、高速異步通信USART1、12位模數(shù)轉(zhuǎn)換器ADC1、ADC2、ADC3和溫度傳感器等接口。第2章 STM32應(yīng)用基礎(chǔ)在APB1總線下有備份接口、定時(shí)計(jì)數(shù)器TIM2、定時(shí)計(jì)數(shù)器TIM3、定時(shí)計(jì)數(shù)器TIM4、定時(shí)計(jì)數(shù)器TIM5、定時(shí)計(jì)數(shù)器TIM6、定時(shí)計(jì)數(shù)器TIM7、異步通信USART2、異步通信USART3、異步通信USART4、異步通信UART5、SPI2/I2S2、SPI3/I2S3、I2C1、I2C2、CAN總線、USB
2.0、12位數(shù)模轉(zhuǎn)換器DAC1、12位數(shù)模轉(zhuǎn)換器DAC2和WDG看門狗定時(shí)器等接口。在STM32F103xx系列處理器的I/O口中,絕大部分引腳都可以復(fù)用(見圖2.4中的A、F)。第2章 STM32應(yīng)用基礎(chǔ)圖2.4
STM32F103xC/D/E內(nèi)部結(jié)構(gòu)第2章 STM32應(yīng)用基礎(chǔ)2.3
STM32系列處理器的電源管理STM32系列處理器除超強(qiáng)的處理能力和多功能以外,
為了降低整個(gè)芯片的功耗和提高器件抗干擾能力,其內(nèi)部不同的功能電路模塊采用不同的電源設(shè)計(jì)和管理方式。2.3.1電源結(jié)構(gòu)STM32處理器電源結(jié)構(gòu)由模擬部分、數(shù)字部分和備用部分組成,如圖2.5所示。圖中VDDA和VSSA、VREF+和VREF-是模擬電源部分,VDD和VSS是數(shù)字電源部分,VBAT是備份電源部分。第2章 STM32應(yīng)用基礎(chǔ)圖2.5
STM32處理器電源結(jié)構(gòu)第2章 STM32應(yīng)用基礎(chǔ)1.模擬電源為了提高A/D轉(zhuǎn)換精度,ADC使用一個(gè)獨(dú)立的電源電路,通過電路中的濾波器和屏蔽措施可去除來(lái)自PCB板上的毛刺干擾。VSSA為獨(dú)立的模擬電源地,VDDA范圍為2.0~3.6
V。供電區(qū)域是:ADC電路、復(fù)位模塊電路、RC振蕩器和PLL模塊的模擬電路。當(dāng)VDD大于2.4V時(shí),ADC工作;當(dāng)VDD大于2.7
V時(shí),USB工作。VREF+電壓范圍為2.4V至VDDA之間,可以連接到VDDA外部電源上。如果VREF+采用獨(dú)立的外部參考電壓,最好在VREF+
和VREF-引腳上連接一個(gè)高頻濾波小電容。第2章 STM32應(yīng)用基礎(chǔ)2.?dāng)?shù)字電源VDD的電源范圍是2.0~3.6
V。通常用+3.3
V的電源為I/O接口等電路供電。內(nèi)置電壓調(diào)節(jié)器可為CPU內(nèi)核(CM3處理器)提供所
需的+1.8
V高精度電源,即把外電源提供的3.3
V轉(zhuǎn)換成1.8
V。電壓調(diào)節(jié)器主要有3種工作模式。在運(yùn)行模式下,為處理器、內(nèi)存和外設(shè)提供+1.8
V電源,此模式也稱主模式(MR)。在該模式下,可以通過降低系統(tǒng)時(shí)鐘,或者關(guān)閉APB和AHB總線上未被使用的時(shí)鐘來(lái)降低功耗。在停止模式下,選擇性地提供1.8
V電源可為某些模塊分時(shí)供電,如為寄存器和SRAM供電以保存其中的數(shù)據(jù)。此種模式也稱為電壓調(diào)節(jié)器的低功耗模式(LPR)。在待機(jī)模式下,可切斷處理器電路的供電,即調(diào)壓器的輸出為高阻狀態(tài)(處于零消耗關(guān)閉狀態(tài))。除備用電路外,寄存器和SRAM的內(nèi)容全部丟失。此種模式也稱關(guān)斷模式。第2章 STM32應(yīng)用基礎(chǔ)3.備份電源備份電源是備份域使用的供電電源,也就是為VBAT引腳的供電電源,可使用電池或其他電源連接到VBAT腳上。VBAT為1.8~3.6
V。當(dāng)主電源VDD斷電時(shí),為RTC、外部32kHz振蕩器和后備寄存器供電。如果沒有連接外部電源(電池),這個(gè)引腳必須連接一個(gè)高頻小電容到VDD電源上。當(dāng)使用VDD時(shí),VBAT上無(wú)電流損失。第2章 STM32應(yīng)用基礎(chǔ)2.3.2電源電壓監(jiān)視在STM32處理器電源管理模式中,有一個(gè)可編程電源
監(jiān)測(cè)器(PVD)。該部分可編程監(jiān)測(cè)VDD電源與PVD閾值(見圖
2.6)并進(jìn)行比較,當(dāng)VDD低于或高于PVD閾值時(shí),可產(chǎn)生中
斷請(qǐng)求信號(hào),通過對(duì)中斷事件的處理可發(fā)出警告信息或?qū)⑻幚砥鬓D(zhuǎn)入安全模式。PVD的控制是通過對(duì)電壓與電源控制寄存器(PWR_CR)的設(shè)置來(lái)完成的。第2章 STM32應(yīng)用基礎(chǔ)圖2.6
PVD閾值示意圖第2章 STM32應(yīng)用基礎(chǔ)2.3.3復(fù)位電路1.系統(tǒng)復(fù)位系統(tǒng)復(fù)位將復(fù)位除時(shí)鐘控制器CSR中的復(fù)位標(biāo)志和備用寄存器外的所有寄存器。當(dāng)有下列事件中的一個(gè)發(fā)生時(shí)都將產(chǎn)生系統(tǒng)復(fù)位。其復(fù)位類型可通過查看控制/狀態(tài)寄存器(RCC-CSR,Control/StatusRegister)中的復(fù)位標(biāo)志來(lái)識(shí)別復(fù)位源。(1)NRST引腳上出現(xiàn)低電平(外部復(fù)位),如圖2.7所示。其復(fù)位效果與需要的時(shí)間、處理器供電電源、復(fù)位閾值等有關(guān)。為了使其充分復(fù)位,在+3.3
V電源工作條件下,復(fù)位時(shí)間可設(shè)置為20
ms左右。在圖2.7中,復(fù)位源將最終作用于
NRST引腳,并在復(fù)位過程中保持低電平。復(fù)位入口地址(矢量)為0x00000004。第2章 STM32應(yīng)用基礎(chǔ)窗口看門狗計(jì)數(shù)溢出(WWDG復(fù)位)。獨(dú)立看門狗計(jì)數(shù)溢出(IWDG復(fù)位)。上電(POR)/掉電(PDR)復(fù)位。軟件復(fù)位(SW復(fù)位),通過設(shè)置相應(yīng)的控制寄存器位來(lái)實(shí)現(xiàn)。低功耗管理復(fù)位,進(jìn)入待機(jī)模式或停止模式時(shí)引起的復(fù)位。第2章 STM32應(yīng)用基礎(chǔ)圖2.7外部復(fù)位電路第2章 STM32應(yīng)用基礎(chǔ)2.電源復(fù)位電源復(fù)位能復(fù)位除備份寄存器外的所有寄存器。當(dāng)以下事件發(fā)生時(shí),將產(chǎn)生電源復(fù)位。(1)上電/掉電復(fù)位(POR/PDR復(fù)位)。STM32集成了一個(gè)上電復(fù)位(POR)和掉電復(fù)位(PDR)電路,當(dāng)供電電壓達(dá)到2
V時(shí),系統(tǒng)就能正常工作。當(dāng)VDD低于特定的閾值VPOR/PDR時(shí),不需要外部復(fù)位電路,STM32一直處于復(fù)位模式。上電復(fù)位和掉電復(fù)位的示意圖如圖2.8所示。第2章 STM32應(yīng)用基礎(chǔ)圖2.8上電/掉電復(fù)位示意圖第2章 STM32應(yīng)用基礎(chǔ)(2)芯片內(nèi)部的復(fù)位。復(fù)位信號(hào)會(huì)在NRST引腳上輸出,脈沖發(fā)生器保證每個(gè)外部或內(nèi)部復(fù)位源都能有至少20
ms的脈沖延時(shí);當(dāng)NRST引腳被拉低產(chǎn)生外部復(fù)位時(shí),它將產(chǎn)生復(fù)位脈沖。第2章 STM32應(yīng)用基礎(chǔ)3.備份區(qū)域復(fù)位當(dāng)發(fā)生以下事件時(shí),將產(chǎn)生備份區(qū)域復(fù)位。軟件復(fù)位。備份區(qū)域復(fù)位可通過設(shè)置備份控制寄存器(RCC_BDCR)中的BDRST位來(lái)實(shí)現(xiàn)。電源復(fù)位。在VDD和VBAT二者掉電的前提下,VDD或VBAT上電將引發(fā)備份區(qū)域復(fù)位。第2章 STM32應(yīng)用基礎(chǔ)2.3.4低功耗模式運(yùn)行模式運(yùn)行模式是指電壓調(diào)節(jié)器工作在正常狀態(tài);CM3處理器正常運(yùn)行;CM3的內(nèi)部外設(shè)(如NVIC)正常運(yùn)行;STM32的PLL、HSE、HIS時(shí)鐘正常運(yùn)行。睡眠模式睡眠模式是指電壓調(diào)節(jié)器工作在正常狀態(tài);CM3處理器在停止?fàn)顟B(tài),但CM3的內(nèi)部外設(shè)仍正常運(yùn)行;STM32的PLL、HSE、HIS時(shí)鐘也正常運(yùn)行;所有的SRAM和寄存器內(nèi)的內(nèi)容被保留,但所有的外設(shè)仍繼續(xù)運(yùn)行(除非它們被關(guān)閉);所有的I/O引腳都保持它們?cè)谶\(yùn)行模式時(shí)的狀態(tài);此時(shí)功耗相對(duì)于正常模式有所降低。第2章 STM32應(yīng)用基礎(chǔ)3.待機(jī)模式待機(jī)模式是指電壓調(diào)節(jié)器關(guān)閉、整個(gè)1.8
V區(qū)域斷電;CM3處理器停止運(yùn)行,CM3的內(nèi)部外設(shè)停止運(yùn)行;STM32的PLL、HSE、HSI時(shí)鐘被關(guān)斷;SRAM和寄存器內(nèi)的內(nèi)容丟失;備份寄存器內(nèi)容保留;待機(jī)電路維持供電。第2章 STM32應(yīng)用基礎(chǔ)4.停止模式停止模式也稱為“深度睡眠模式”。電壓調(diào)節(jié)器可被置于停止模式,即選擇性地為某些模塊提供1.8
V電源;CM3處理器停止運(yùn)行,CM3的內(nèi)部外設(shè)停止運(yùn)行;STM32的PLL、HSE、HSI時(shí)鐘被關(guān)斷;所有的SRAM和寄存器內(nèi)的內(nèi)容被保留。當(dāng)STM32處理器從以上三種低功耗模式返回到正常模式時(shí),處理器有下列狀態(tài)。(1)當(dāng)STM32處于睡眠狀態(tài)時(shí),只有處理器停止工作,
SRAM、寄存器的值仍然保留,當(dāng)前執(zhí)行狀態(tài)的信息并未丟失,因此STM32從睡眠狀態(tài)恢復(fù)后,回到進(jìn)入睡眠狀態(tài)指令的后一條指令開始執(zhí)行。第2章 STM32應(yīng)用基礎(chǔ)當(dāng)STM32處于停止?fàn)顟B(tài)時(shí),SRAM、寄存器的值仍然保留,因此STM32從停止?fàn)顟B(tài)恢復(fù)后,回到進(jìn)入停止?fàn)顟B(tài)指令的后一條指令開始執(zhí)行。但不同于睡眠狀態(tài),進(jìn)入停止?fàn)顟B(tài)后,STM32時(shí)鐘關(guān)斷,因此從停止?fàn)顟B(tài)恢復(fù)后,STM32將使用內(nèi)部高速振蕩器作為系統(tǒng)時(shí)鐘(HIS,頻率為不穩(wěn)定的8
MHz)。當(dāng)STM32處于待機(jī)狀態(tài)時(shí),所有SRAM和寄存器的值都丟失(恢復(fù)默認(rèn)值),因此從待機(jī)狀態(tài)恢復(fù)后,程序重新從復(fù)位初始位置開始執(zhí)行,這相當(dāng)于一次軟件復(fù)位效果。第2章 STM32應(yīng)用基礎(chǔ)2.3.5
STM32的啟動(dòng)1.啟動(dòng)設(shè)置在STM32F10xxx系列中,可以通過BOOT[1:0]引腳選擇3種不同啟動(dòng)模式,如表2.5所示。其硬件電路連接如圖2.9所示。第2章 STM32應(yīng)用基礎(chǔ)第2章 STM32應(yīng)用基礎(chǔ)圖2.9STM32啟動(dòng)電路第2章 STM32應(yīng)用基礎(chǔ)在系統(tǒng)復(fù)位后,SYSCLK的第4個(gè)上升沿到來(lái)時(shí),BOOT引腳的值將被讀入鎖存。用戶可以通過設(shè)置BOOT1和BOOT0引腳的狀態(tài),來(lái)選擇在復(fù)位后的啟動(dòng)模式。根據(jù)選定的啟動(dòng)模式,主Flash存儲(chǔ)器、系統(tǒng)存儲(chǔ)器或內(nèi)置SRAM可以按照以下方式進(jìn)行訪問。從主Flash存儲(chǔ)器啟動(dòng)。主Flash存儲(chǔ)器被映射到啟動(dòng)空間(0x0000
0000),但仍然能夠在它原有的地址(0x0800
0000)區(qū)域訪問它,即Flash存儲(chǔ)器的內(nèi)容可以在兩個(gè)地址區(qū)域訪問(0x0000
0000或0x0800
0000訪問)。從系統(tǒng)存儲(chǔ)器啟動(dòng)。系統(tǒng)存儲(chǔ)器被映射到啟動(dòng)空間(0x00000000),但仍能在其原有的地址(互聯(lián)型產(chǎn)品原有地址為0x1FFFB000,其他產(chǎn)品原有地址為0x1FFFF000)區(qū)域訪問它。第2章 STM32應(yīng)用基礎(chǔ)(3)從內(nèi)置SRAM啟動(dòng)。只能在0x2000
0000開始的地址區(qū)域訪問SRAM。多數(shù)情況下,SRAM只是在調(diào)試時(shí)使用,也可
以用于其他一些用途。如做故障的局部診斷處理(寫一小段程序加載到SRAM中,診斷PCB上的其他電路是否有故障,或者用此方法讀寫PCB上的Flash存儲(chǔ)器或EEPROM等內(nèi)容)。還
可以通過這種方法解除內(nèi)部Flash的讀/寫保護(hù),當(dāng)然在解除讀/寫保護(hù)的同時(shí),F(xiàn)lash的內(nèi)容也被自動(dòng)清除,以防止惡意的軟件復(fù)制。當(dāng)從內(nèi)置SRAM啟動(dòng)時(shí)在應(yīng)用程序的初始化代碼中,必須使用NVIC的異常表和偏移寄存器,重新映射向量表(地址)到SRAM中。注意,STM32處理器在通過USART0串口下載程序時(shí),一定要將BOOT0置為1,BOOT1置為0。當(dāng)程序下載完后,要將BOOT0置為0,BOOT1置為0方能啟動(dòng)程序。第2章 STM32應(yīng)用基礎(chǔ)2.啟動(dòng)過程STM32的啟動(dòng)代碼在startup_stm32f10x_xx.s(xx根據(jù)控制器的存儲(chǔ)容量大、中、小分別為hd、md、ld)中,其中的程序
功能主要包括初始化堆棧、定義程序啟動(dòng)地址、中斷向量表和中斷服務(wù)程序入口地址,以及系統(tǒng)復(fù)位啟動(dòng)時(shí),從啟動(dòng)代
碼跳轉(zhuǎn)到用戶main函數(shù)入口地址。嵌入式系統(tǒng)的啟動(dòng)還需要
一段啟動(dòng)代碼(Bootloader),類似于啟動(dòng)PC時(shí)的BIOS,一般用于完成處理器的初始化和自檢。STM32處理器規(guī)定,起始地址必須存放堆頂指針,而第2個(gè)地址則必須存儲(chǔ)復(fù)位中斷入口向量地址,這樣在處理器復(fù)
位后,會(huì)自動(dòng)從起始地址的下一個(gè)32位空間取出復(fù)位中斷入口向量,跳轉(zhuǎn)執(zhí)行復(fù)位中斷服務(wù)程序,啟動(dòng)有以下三種情況。第2章 STM32應(yīng)用基礎(chǔ)通過BOOT引腳設(shè)置可以將中斷向量表定位于FLASH區(qū),即起始地址為0x8000000,同時(shí)復(fù)位后PC指針位于0x800
0000處。通過BOOT引腳設(shè)置可以將中斷向量表定位于SRAM
區(qū),即起始地址為0x200
0000,同時(shí)復(fù)位后PC指針位于0x2000000處。通過BOOT引腳設(shè)置可以將中斷向量表定位于內(nèi)置Bootloader區(qū)。第2章 STM32應(yīng)用基礎(chǔ)2.4
STM32系列處理器的時(shí)鐘系統(tǒng)STM32處理器的時(shí)鐘系統(tǒng)比較復(fù)雜,不同性能、不同
速度的電路采用了不同的時(shí)鐘信號(hào)源,如圖2.10所示。每個(gè)時(shí)鐘源在不使用時(shí)都可以單獨(dú)打開或關(guān)閉,這樣就可以控制系統(tǒng)的功耗。第2章 STM32應(yīng)用基礎(chǔ)圖2.10
STM32處理器時(shí)鐘系統(tǒng)第2章 STM32應(yīng)用基礎(chǔ)STM32的時(shí)鐘主要由以下幾個(gè)方法來(lái)獲取:HIS(高速內(nèi)部時(shí)鐘),即RC振蕩器,時(shí)鐘頻率為8MHz。HSE(高速外部時(shí)鐘),可外接石英、陶瓷諧振器,或者接外部時(shí)鐘源頻率范圍為4~16
MHz。LSI(低速內(nèi)部時(shí)鐘),即RC振蕩器,頻率為40
kHz。LSE(低速外部時(shí)鐘),外接頻率為32.768kHz的石英晶體。PLL(鎖相環(huán)倍頻輸出),其中鎖相環(huán)的時(shí)鐘輸入源可以選擇HIS/2、HSE或者HSE/2。倍頻時(shí)鐘可以選擇2~16的整數(shù)倍,但其輸出頻率最高不得超過72
MHz。第2章 STM32應(yīng)用基礎(chǔ)其中,40
kHz的LSI供獨(dú)立看門狗IWDG使用,除此之外,還可以被選擇為實(shí)時(shí)時(shí)鐘RTC的時(shí)鐘源。通常,實(shí)時(shí)時(shí)鐘RTC的時(shí)鐘源還可以選擇LSE或者HSE的128分頻,用戶可以通過寄存器RTCSEL[1:0]來(lái)選擇實(shí)時(shí)時(shí)鐘RTC的時(shí)鐘源。時(shí)鐘的設(shè)置需要先考慮系統(tǒng)時(shí)鐘的來(lái)源,是內(nèi)部時(shí)鐘、外部晶振,還是外部的振蕩器,是否需要PLL;然后再考慮內(nèi)部總線和外部總線,最后考慮外設(shè)的時(shí)鐘信號(hào)。應(yīng)遵從先倍頻作為處理器的時(shí)鐘,然后再由內(nèi)向外分頻的原則。第2章 STM32應(yīng)用基礎(chǔ)2.4.1高速時(shí)鐘(HSE、HSI)1.HSE時(shí)鐘STM32系列處理器的高速HSE時(shí)鐘工作在兩種模式下:從屬模式(外接輸入時(shí)鐘源)和振蕩模式(外接振蕩電路)。在從屬模式下,輸入信號(hào)時(shí)鐘的引腳與一個(gè)100
pF的電容(C1)相連,且輸入信號(hào)時(shí)鐘的幅值應(yīng)當(dāng)不小于200
mV,
OSC_OUT引腳懸空不連接,如圖2.11(a)所示。如果用戶使用時(shí)鐘的從屬模式,則輸入信號(hào)時(shí)鐘的頻率被限制在4~16
MHz。第2章 STM32應(yīng)用基礎(chǔ)此外,系統(tǒng)時(shí)鐘還可以工作在振蕩模式下,具體的電路連接如圖2.11(b)所示。由于在ARM處理器的內(nèi)部已經(jīng)集成
了一個(gè)反饋電阻,所以用戶只需要在外部連接一個(gè)晶振(JZ,
4~16
MHz)和兩個(gè)起振電容C2、C3(10~30
pF),該電容的
連接應(yīng)盡可能靠近芯片引腳,以減小失真和啟動(dòng)穩(wěn)定時(shí)間。第2章 STM32應(yīng)用基礎(chǔ)圖2.11高頻時(shí)鐘(HSE)電路第2章 STM32應(yīng)用基礎(chǔ)2.HSI時(shí)鐘HSI時(shí)鐘信號(hào)由內(nèi)部8
MHz的RC振蕩器產(chǎn)生,可直接作
為系統(tǒng)時(shí)鐘或在2分頻后作為PLL輸入。HSI的RC振蕩器能
夠在不需要任何外部器件的條件下提供系統(tǒng)時(shí)鐘。它的啟動(dòng)時(shí)間比HSE晶體振蕩器時(shí)間短。但是,即使在校準(zhǔn)后,HSI的時(shí)鐘頻率精度仍較差。第2章 STM32應(yīng)用基礎(chǔ)2.4.2鎖相環(huán)時(shí)鐘(PLL)一般電子設(shè)備要正常工作,通常需要外部的時(shí)鐘輸入與內(nèi)部的振蕩信號(hào)同步,利用鎖相環(huán)PLL
(Phase
Lacked
Loop)就可以實(shí)現(xiàn)這個(gè)目的。鎖相環(huán)是一種反饋控制電路,其特點(diǎn)是利用外部輸入的參考信號(hào)控制環(huán)路內(nèi)部振蕩信號(hào)的頻率和相位。因鎖相環(huán)可以實(shí)現(xiàn)輸出信號(hào)頻率對(duì)輸入信號(hào)頻率的自動(dòng)跟蹤,所以鎖相環(huán)通常用于閉環(huán)跟蹤電路。鎖相環(huán)在工作過程中,當(dāng)輸出信號(hào)的頻率與輸入信號(hào)的頻率相等時(shí),輸出電壓與輸入電壓保持固定的相位差值,即輸出電壓與輸入電壓的相位被鎖住,這就是鎖相環(huán)名稱的由來(lái)。內(nèi)部PLL可以用于倍頻HSI的RC輸出時(shí)鐘或HSE晶體輸出時(shí)鐘。PLL的設(shè)置(選擇HSI振蕩器除2或
HSE振蕩器為PLL的輸入時(shí)鐘,和選擇倍頻因子)必須在其被激活前完成。一旦PLL被激活,這些參數(shù)就不能被改動(dòng)。如果
PLL控制器的中斷在時(shí)鐘中斷寄存器中被允許,當(dāng)PLL準(zhǔn)備就緒時(shí),則產(chǎn)生中斷申請(qǐng)。如果需要在應(yīng)用中使用USB接口,
PLL必須被設(shè)置為輸出48
MHz或72
MHz的時(shí)鐘,用于提供48
MHz的USBCLK時(shí)鐘信號(hào)。第2章 STM32應(yīng)用基礎(chǔ)2.4.3低速時(shí)鐘(LSE、LSI)1.LSE時(shí)鐘LSE是低速外部時(shí)鐘,通常可接32.768
kHz的石英晶體。低速外部時(shí)鐘源(LSE)可以由外部時(shí)鐘輸入和外接晶振兩種電路產(chǎn)生,如圖2.12所示。在外接晶振時(shí),晶體是一個(gè)
32.768
kHz的低速外部晶體或陶瓷諧振器。它的優(yōu)點(diǎn)在于能為實(shí)時(shí)時(shí)鐘部件(RTC)提供一個(gè)低速高精確的時(shí)鐘源。RTC
可以用于時(shí)鐘/日歷或其他需要計(jì)時(shí)的場(chǎng)合。第2章 STM32應(yīng)用基礎(chǔ)圖2.12低頻時(shí)鐘(LSE)電路第2章 STM32應(yīng)用基礎(chǔ)2.LSI時(shí)鐘LSI是一個(gè)低功耗時(shí)鐘源,它可以在停機(jī)模式或待機(jī)模式下保持運(yùn)行,為獨(dú)立看門狗和自動(dòng)喚醒單元提供時(shí)鐘。
LSI時(shí)鐘頻率大約為40
kHz(在30~60
kHz之間)。LSI可以通過控制狀態(tài)寄存器(RCC_CSR)中的LSION位來(lái)啟動(dòng)或關(guān)閉。在控制狀態(tài)寄存器(RCC_
CSR)中的LS1RI3Y位判定低速內(nèi)部振蕩器是否穩(wěn)定。在啟動(dòng)階段,直到這個(gè)位被硬件設(shè)置為
1后,此時(shí)鐘才可使用。如果在時(shí)鐘中斷寄存器(RCC_CIR)中被允許,將產(chǎn)生LSI中斷申請(qǐng)。第2章 STM32應(yīng)用基礎(chǔ)2.4.4系統(tǒng)時(shí)鐘(SYSCLK)系統(tǒng)時(shí)鐘SYSCLK是供STM32中絕大部分部件工作的時(shí)鐘源。如圖2.10所示,STM32將時(shí)鐘信號(hào)(通常為HSE)經(jīng)過分頻或倍頻(PLL)后,得到系統(tǒng)時(shí)鐘,系統(tǒng)時(shí)鐘經(jīng)過分頻,產(chǎn)生外設(shè)所使用的時(shí)鐘。其中,典型值為40
kHz的LSI供給獨(dú)立看門狗IWDG使用,另外它還可以為實(shí)時(shí)時(shí)鐘RTC提供時(shí)鐘源。RTC的時(shí)鐘源也可以選擇為L(zhǎng)SE,或者為HSE的128分頻。RTC的時(shí)鐘源通過備份控制寄存器(RCC_BDCR)的RTCSEL
[1:0]來(lái)選擇。第2章 STM32應(yīng)用基礎(chǔ)STM32中有一個(gè)全速功能的USB模塊,其串行接口需要一個(gè)頻率為48
MHz的時(shí)鐘源。該時(shí)鐘源只能從PLL輸出端獲取,可以選擇為1.5分頻或1分頻,也就是當(dāng)需要使用USB模塊時(shí),PLL必須使能,并且時(shí)鐘頻率配置為48
MHz或72MHz,但這并不意味著USB模塊工作時(shí)需要48
MHz,48MHz僅提供給USB串行接口SIE。另外,STM32還可以選擇一個(gè)時(shí)鐘信號(hào)輸出到MCO引腳(PA8)上,可以選擇為PLL輸出的2分頻、HSI、HSE或系統(tǒng)時(shí)鐘。第2章 STM32應(yīng)用基礎(chǔ)系統(tǒng)時(shí)鐘可選擇為PLL輸出、HSI或HSE,HSI與HSE可以通過分頻加至PLLSRC,并由PLLMUL進(jìn)行倍頻后,直接充當(dāng)PLLCLK。系統(tǒng)時(shí)鐘最大頻率為72MHz,它通過AHB分頻器分頻后送給各個(gè)模塊。送給AHB總線、內(nèi)核、內(nèi)存和DMA使用的HCLK時(shí)鐘。通過8分頻后送給系統(tǒng)定時(shí)器的時(shí)鐘。直接送給處理器的空閑運(yùn)行時(shí)鐘FCLK。送給APB1分頻器。APB1分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB1外設(shè)使用(PCLK1,最大頻率為36MHz),另一路送給定時(shí)器TIM2~TIM4倍頻器使用。該倍頻器可選擇1倍頻或2倍頻,時(shí)鐘輸出供定時(shí)器2~定時(shí)器4使用。第2章 STM32應(yīng)用基礎(chǔ)送給APB2分頻器。APB2分頻器可選擇1、2、4、8、16分頻,其輸出一路供APB2外設(shè)使用(PCLK2,最大頻率為72MHz),另一路送給定時(shí)器TIM1倍頻器使用。該倍頻器可選擇1倍頻或2倍頻,時(shí)鐘輸出供定時(shí)器1使用。另外,APB2分頻器還有一路輸出供ADC分頻器使用,分頻后送給ADC模塊使用。ADC分頻器可選擇為2、4、6、8分頻。送給SDIO使用的SDIOCLK時(shí)鐘。送給FSMC使用的FSMCCLK時(shí)鐘。2分頻后送給SDIO
AHB接口使用(HCLK/2)。連接在APB1(低速外設(shè))上的設(shè)備有電源接口、備份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看門狗、TIM2、TIM3、TIM4。第2章 STM32應(yīng)用基礎(chǔ)(10)連接在APB2(高速外設(shè))上的設(shè)備有UART1、SPI1、TIM1、ADC1、ADC2、所有普通I/O口(PA~PE)、第二功能I/O口。第2章 STM32應(yīng)用基礎(chǔ)2.4.5
RCC寄存器配置1.時(shí)鐘控制寄存器(RCC_CR)RCC_CR的偏移地址是00H。復(fù)位默認(rèn)值是0000
0083H??勺帧胱趾妥止?jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31~D26是保留位,始終讀為0。D25(PLLRDY)是PLL時(shí)鐘就緒標(biāo)志位。PLL鎖定后由硬件置1,否則清零。D24(PLLON)是PLL使能位。PLLON=1時(shí)使能,PLLON=0時(shí)關(guān)閉。D23~D20是保留位,始終讀為0。D19(CSSON)是時(shí)鐘安全系統(tǒng)使能位。CSSON=0時(shí),時(shí)鐘監(jiān)測(cè)器關(guān)閉;CSSON=1時(shí),如果外部時(shí)鐘1~25
MHz就緒,則時(shí)鐘監(jiān)測(cè)器開啟。第2章 STM32應(yīng)用基礎(chǔ)D18(HSEBYP)是外部高速時(shí)鐘旁路位,在調(diào)試模式下由軟件置1或清零來(lái)旁路外部晶體振蕩器。只有在外部1~25
MHz振蕩器關(guān)閉的情況下,該位才可以寫入。HSEBYP=0時(shí),外部1~25
MHz振蕩器沒有旁路;HSEBYP=1時(shí),外部1~25
MHz外部晶體振蕩器被旁路。D17(HSERDY)是外部高速時(shí)鐘就緒標(biāo)志位,由硬件置1來(lái)指示外部時(shí)鐘已經(jīng)穩(wěn)定。HSERDY=0時(shí),外部1~25
MHz時(shí)鐘沒有就緒;HSERDY=1時(shí),外部1~25
MHz時(shí)
鐘就緒。第2章STM32應(yīng)用基礎(chǔ)D16(HSEON)是外部高速時(shí)鐘使能位,由軟件置1或清零。當(dāng)進(jìn)入待機(jī)和停止模式時(shí),該位由硬件清零,關(guān)閉外部時(shí)鐘。當(dāng)外部時(shí)鐘被用作或被選擇將要作為系統(tǒng)時(shí)鐘時(shí),該位不能被清零。HSEON=0時(shí),HSE振蕩器關(guān)閉;HSEON=1時(shí),HSE振蕩器開啟。D15~D8(HSICAL[7:0])是內(nèi)部高速時(shí)鐘校準(zhǔn)位。當(dāng)系統(tǒng)啟動(dòng)時(shí),這些位被自動(dòng)初始化。D7~D3(HSITRIM[4:0])是內(nèi)部高速時(shí)鐘調(diào)整位,由軟件寫入數(shù)據(jù)來(lái)調(diào)整內(nèi)部高速時(shí)鐘,它們被疊加在HSICAL[5:0]數(shù)值上。D2是保留位,始終讀為0。第2章 STM32應(yīng)用基礎(chǔ)D1(HSIRDY)是內(nèi)部高速時(shí)鐘就緒標(biāo)志位,由硬件置1來(lái)指示內(nèi)部8
MHz時(shí)鐘已經(jīng)穩(wěn)定。HSIRDY=0時(shí),內(nèi)部8MHz時(shí)鐘沒有就緒;HSIRDY=1時(shí),內(nèi)部8
MHz時(shí)鐘就緒。D0(HSION)是內(nèi)部高速時(shí)鐘使能位,由軟件置1或清零。當(dāng)從待機(jī)和停止模式返回或用作系統(tǒng)時(shí)鐘的外部1~25
MHz時(shí)鐘發(fā)生故障時(shí),該位由硬件置1來(lái)啟動(dòng)內(nèi)部8
MHz的RC振蕩器。當(dāng)內(nèi)部8
MHz時(shí)鐘被直接或間接地用作或被
選擇將要作為系統(tǒng)時(shí)鐘時(shí),該位不能被清零。HSION=0時(shí),內(nèi)部8
MHz時(shí)鐘關(guān)閉;HSION=1時(shí),內(nèi)部8
MHz時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)2.時(shí)鐘配置寄存器(RCC_CFGR)RCC_CFGR的偏移地址是04H。復(fù)位默認(rèn)值是00000000H??勺帧胱趾妥止?jié)約2周等待訪問。它的32位(D31~D0)含義如下:D31~D26是保留位,始終讀為0。D25~D23(MCO[2:0])是處理器時(shí)鐘輸出控制位,由軟件置1或清零。當(dāng)設(shè)為0xx時(shí),沒有時(shí)鐘輸出;設(shè)為100時(shí),系統(tǒng)時(shí)鐘輸出;設(shè)為101時(shí),內(nèi)部8
MHz的RC振蕩器時(shí)鐘輸出;設(shè)為110時(shí),外部1~25MHz振蕩器時(shí)鐘輸出;設(shè)為111時(shí),PLL時(shí)鐘2分頻后輸出。第2章 STM32應(yīng)用基礎(chǔ)(3)D22(USBPRE)是USB預(yù)分頻位,由軟件設(shè)置來(lái)產(chǎn)生48
MHz的USB時(shí)鐘。在RCC_APB1ENR寄存器中使能USB時(shí)鐘之前,必須保證該位已經(jīng)有效。如果USB時(shí)鐘被使能,該位可以被清零。USBPRE=0時(shí),PLL時(shí)鐘1.5倍分頻可作為USB時(shí)鐘;USBPRE=1時(shí),PLL時(shí)鐘直接作為USB時(shí)鐘。第2章 STM32應(yīng)用基礎(chǔ)(4)D21~D18(PLLMUL[3:0])是PLL倍頻系數(shù)位,由軟件設(shè)置來(lái)確定PLL倍頻系數(shù)。該位只有在PLL關(guān)閉的情況下才可被寫入(PLL的輸出頻率不能超過72
MHz)。當(dāng)設(shè)為0000時(shí),PLL
2倍頻輸出;設(shè)為0001時(shí),PLL
3倍頻輸出;設(shè)為
0010時(shí),PLL
4倍頻輸出;設(shè)為0011時(shí),PLL
5倍頻輸出;
設(shè)為0100時(shí),PLL
6倍頻輸出;設(shè)為0101時(shí),PLL
7倍頻輸
出;設(shè)為0110時(shí),PLL
8倍頻輸出;設(shè)為0111時(shí),PLL
9倍
頻輸出;設(shè)為1000時(shí),PLL
10倍頻輸出;設(shè)為1001時(shí),PLL
11倍頻輸出;設(shè)為1010時(shí),PLL
12倍頻輸出;設(shè)為1011時(shí),
PLL
13倍頻輸出;設(shè)為1100時(shí),PLL
14倍頻輸出;設(shè)為
1101時(shí),PLL
15倍頻輸出;設(shè)為1110時(shí),PLL
16倍頻輸出;設(shè)為1111時(shí),PLL
16倍頻輸出。第2章 STM32應(yīng)用基礎(chǔ)D17(PLLXTPRE)是HSE分頻器作為PLL輸入位,由軟件設(shè)置來(lái)分頻HSE后作為PLL輸入時(shí)鐘。該位只有在PLL關(guān)閉時(shí)才可以被寫入。PLLXTPRE=0時(shí),HSE不分頻;PLLXTPRE=1時(shí),HSE
2分頻。D16(PLLSRC)是PLL輸入時(shí)鐘源配置位。由軟件設(shè)置來(lái)選擇PLL輸入時(shí)鐘源。該位只有在PLL關(guān)閉時(shí)才可以被寫入。PLLSRC=0時(shí),HSI時(shí)鐘2分頻后作為PLL輸入時(shí)鐘;PLLSRC=1時(shí),HSE時(shí)鐘作為PLL輸入時(shí)鐘。第2章 STM32應(yīng)用基礎(chǔ)D15、D14(ADCPRE)是ADC預(yù)分頻配置位,由軟件設(shè)置來(lái)確定ADC時(shí)鐘頻率。當(dāng)設(shè)為00時(shí),PCLK22分頻后作為ADC時(shí)鐘;設(shè)為01時(shí),PCLK2
4分頻后作為ADC時(shí)鐘;
設(shè)為10時(shí),PCLK2
6分頻后作為ADC時(shí)鐘;設(shè)為11時(shí),PCLK2
8分頻后作為ADC時(shí)鐘。D13~D11(PPRE2)是高速APB預(yù)分頻(APB2)位,由軟件設(shè)置來(lái)控制高速APB2預(yù)分頻系數(shù)。當(dāng)設(shè)為0xx時(shí),HCLK不分頻;設(shè)為100時(shí),HCLK
2分頻;設(shè)為101時(shí),HCLK
4分頻;設(shè)為110時(shí),HCLK
8分頻;設(shè)為111時(shí),HCLK
16分頻。第2章 STM32應(yīng)用基礎(chǔ)D10~D8(PPRE1)是低速APB預(yù)分頻(APB1)設(shè)置位,由軟件設(shè)置來(lái)控制低速APB1預(yù)分頻系數(shù)(軟件必須保證
APB1時(shí)鐘頻率不超過36
MHz)。當(dāng)設(shè)為0xx時(shí),HCLK不分頻;設(shè)為100時(shí),HCLK
2分頻;設(shè)為101時(shí),HCLK
4分頻;設(shè)為110時(shí),HCLK
8分頻;設(shè)為111時(shí),HCLK
16分頻。D7~D4(HPRE[3:0])是AHB預(yù)分頻設(shè)置位,由軟件設(shè)置來(lái)控制AHB預(yù)分頻系數(shù)。當(dāng)設(shè)為0xxx時(shí),SYSCLK不分
頻;設(shè)為1000時(shí),SYSCLK
2分頻;設(shè)為1001時(shí),SYSCLK4分頻;設(shè)為1010時(shí),SYSCLK
8分頻;設(shè)為1011時(shí),SYSCLK
16分頻;設(shè)為1100時(shí),SYSCLK
64分頻;設(shè)為1101時(shí),SYSCLK
128分頻;設(shè)為1110時(shí),SYSCLK
256分頻;設(shè)為1111時(shí),SYSCLK
512分頻。第2章 STM32應(yīng)用基礎(chǔ)D3、D2(SWS[1:0])是系統(tǒng)時(shí)鐘切換狀態(tài)指示位,由硬件置1和清零來(lái)指示哪一個(gè)時(shí)鐘源被作為系統(tǒng)時(shí)鐘。當(dāng)設(shè)為00時(shí),HSI作為系統(tǒng)時(shí)鐘;當(dāng)設(shè)為01時(shí),HSE作為系統(tǒng)時(shí)鐘;當(dāng)設(shè)為10時(shí),PLL輸出作為系統(tǒng)時(shí)鐘;當(dāng)設(shè)為11時(shí),表示不可用。D1、D0(SW[1:0])是系統(tǒng)時(shí)鐘切換位,由軟件設(shè)置來(lái)選擇系統(tǒng)時(shí)鐘源。當(dāng)從停止或待機(jī)模式中返回時(shí)或直接或間接作為系統(tǒng)時(shí)鐘的HSE出現(xiàn)故障時(shí),由硬件強(qiáng)制選擇HSI作為系統(tǒng)時(shí)鐘(如果時(shí)鐘安全系統(tǒng)已經(jīng)啟動(dòng))。當(dāng)設(shè)為00時(shí),HSI作為系統(tǒng)時(shí)鐘;當(dāng)設(shè)為01時(shí),HSE作為系統(tǒng)時(shí)鐘;當(dāng)設(shè)為10時(shí),PLL輸出作為系統(tǒng)時(shí)鐘;當(dāng)設(shè)為11時(shí),表示不可用。第2章 STM32應(yīng)用基礎(chǔ)3.時(shí)鐘中斷寄存器(RCC_CIR)RCC_CIR的偏移地址是08H。復(fù)位默認(rèn)值是00000000H。可字、半字和字節(jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31~D24是保留位,始終讀為0。D23(CSSC)是時(shí)鐘安全系統(tǒng)中斷清除位,由軟件置1來(lái)清除CSSF安全系統(tǒng)中斷標(biāo)志位CSSF。在清除操作完成后,該位由硬件復(fù)位。CSSC=0時(shí),CSSF安全系統(tǒng)中斷標(biāo)志位未
清零;CSSC=1時(shí),CSSF安全系統(tǒng)中斷標(biāo)志位清零。D22、D21是保留位,始終讀為0。第2章 STM32應(yīng)用基礎(chǔ)D20(PLLRDYC)是PLL就緒中斷清除位,由軟件置1來(lái)清零PLL就緒中斷標(biāo)志位PLLRDYF。在清除操作完成后,該位由硬件復(fù)位。PLLRDYC=0時(shí),PLL就緒中斷標(biāo)志位PLLRDYF未清零;PLLRDYC=1時(shí),PLL中斷標(biāo)志位PLLRDYF清零完成。D19(HSERDYC)是HSE就緒中斷清除位,由軟件置
1來(lái)清零HSE就緒中斷標(biāo)志位HSERDYF。在清除操作完成后,該位由硬件復(fù)位。HSERDYC=0時(shí),HSE就緒中斷標(biāo)志位HSERDYF未清零;HSERDYC=1時(shí),HSE中斷標(biāo)志位HSERDYF清零完成。第2章 STM32應(yīng)用基礎(chǔ)D18(HSIRDYC)是HSI就緒中斷清除位。由軟件置1來(lái)清零HSI就緒中斷標(biāo)志位HSIRDYF。在清除操作完成后,該位由硬件復(fù)位。HSIRDYC=0時(shí),HSI就緒中斷標(biāo)志位HSIRDYF未清零,HSIRDYC=1時(shí),HSI中斷標(biāo)志位HSIRDYF清零完成。D17(LSERDYC)是LSE就緒中斷清除位,由軟件置1來(lái)清零LSE就緒中斷標(biāo)志位LSERDYF。LSERDYC=0時(shí),LSE就緒中斷標(biāo)志位LSERDYF未清零;LSERDYC=1時(shí),LSE就緒中斷標(biāo)志位LSERDYF清零。第2章 STM32應(yīng)用基礎(chǔ)D16(LSIRDYC)是LSI就緒中斷清除位,由軟件置1來(lái)清零LSI就緒中斷標(biāo)志位LSIRDYF。LSIRDYC=0時(shí),LSI就緒中斷標(biāo)志位LSIRDYF未清零;LSIRDYC=1時(shí),LSI就緒中斷標(biāo)志位LSIRDYF清零。D15~D13保留位,始終讀為0。D12(PLLRDYIE)是PLL就緒中斷使能位。PLLRDYIE=0時(shí),PLL就緒中斷關(guān)閉;PLLRDYIE=1時(shí),PLL就緒中斷使能完成。D11(HSERDYIE)是HSE就緒中斷使能位。HSERDYIE=0時(shí),HSE就緒中斷關(guān)閉;HSERDYIE=1時(shí),HSE就緒中斷使能。第2章 STM32應(yīng)用基礎(chǔ)D10(HSIRDYIE)是HSI就緒中斷使能位,由軟件置1或清零來(lái)使能或關(guān)閉內(nèi)部8
MHz
RC振蕩器就緒中斷。HSIRDYIE=0時(shí),HSI就緒中斷關(guān)閉;HSIRDYIE=1時(shí),HSI就緒中斷使能。D9(LSERDYIE)是LSE就緒中斷使能位,由軟件置1或清零來(lái)使能或關(guān)閉外部32
kHz
RC振蕩器就緒中斷。LSERDYIE=0時(shí),LSE就緒中斷關(guān)閉;LSERDYIE=1時(shí),LSE就緒中斷使能。D8(LSIRDYIE)是LSI就緒中斷使能位,由軟件置1或清零來(lái)使能或關(guān)閉內(nèi)部32
kHz
RC振蕩器就緒中斷。LSIRDYIE=0時(shí),LSI就緒中斷關(guān)閉;LSIRDYIE=1時(shí),LSI就緒中斷使能。第2章 STM32應(yīng)用基礎(chǔ)D7(CSSF)是時(shí)鐘安全系統(tǒng)中斷標(biāo)志位。CSSF=0時(shí),無(wú)HSE時(shí)鐘失效安全系統(tǒng)中斷;CSSF=1時(shí),產(chǎn)生HSE時(shí)鐘失效安全系統(tǒng)中斷。D6、D5位,保留,始終讀為0。D4(PLLRDYF)是PLL就緒中斷標(biāo)志位。PLLRDYF=0時(shí),無(wú)PLL中斷;PLLRDYF=1時(shí),產(chǎn)生PLL中斷。D3(HSERDYF)是HSE就緒中斷標(biāo)志位。HSERDYF=0時(shí),無(wú)外部1~25
MHz振蕩器就緒中斷;HSERDYF=1時(shí),產(chǎn)生外部1~25
MHz振蕩器就緒中斷。第2章 STM32應(yīng)用基礎(chǔ)D2(HSIRDYF)是HSI就緒中斷標(biāo)志位。HSIRDYF為0時(shí),無(wú)內(nèi)部8
MHz
RC振蕩器就緒中斷;HSIRDYF為1時(shí),產(chǎn)生內(nèi)部8
MHz
RC振蕩器就緒中斷。D1(LSERDYF)是LSE就緒中斷標(biāo)志位。LSERDYF為0時(shí),無(wú)外部32kHz振蕩器就緒中斷;LSERDYE為1時(shí),產(chǎn)生外部32
kHz振蕩器就緒中斷。D0(LSIRDYF)是LSI就緒中斷標(biāo)志位。LSIRDYF為0時(shí),無(wú)內(nèi)部32kHz
RC振蕩器就緒中斷;LSIRDYF為1時(shí),產(chǎn)生內(nèi)部32
kHz
RC振蕩器就緒中斷。第2章 STM32應(yīng)用基礎(chǔ)4.APB2外設(shè)復(fù)位寄存器(RCC_APB2RSTR)RCC_APB2RSTR的偏移地址是0CH。復(fù)位默認(rèn)值是0000
0000H??勺帧胱趾妥止?jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31~D15是保留位,始終讀為0。D14(USART1RST)是USART1復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位USART1。D13是保留位,始終讀為0。D12(SPI1RST)是SPI1復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位SPI1。D11(TIM1RST)是TIM1復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位TIM1。第2章 STM32應(yīng)用基礎(chǔ)D10(ADC2RST)是ADC2復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位ADC2。D9(ADC1RST)是ADC1復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位ADC1。D8、D7是保留位,始終讀為0。D6(IOPERST)是IO口E復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位IO口E。D5(IOPDRST)是IO口D復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位IO口D。D4(IOPCRST)是IO口C復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位IO口C。第2章 STM32應(yīng)用基礎(chǔ)D3(IOPBRST)是IO口B復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位IO口B。D2(IOPARST)是IO口A復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位IO口A。D1是保留位,始終讀為0。D0(AFIORST)是輔助功能IO復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位輔助功能。第2章 STM32應(yīng)用基礎(chǔ)5.APB1外設(shè)復(fù)位寄存器(RCC_APB1RSTR)RCC_APB1RSTR的偏移地址是10H。復(fù)位默認(rèn)值是0000
0000H。可字、半字和字節(jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31~D29是保留位,始終讀為0。D28(PWRRST)是電源復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位電源電路。D27(BKPRST)是備份復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位備份電路。D26是保留位,始終讀為0。D25(CANRST)是CAN復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位CAN。D24是保留位,始終讀為0。第2章 STM32應(yīng)用基礎(chǔ)D23(USBRST)是USB復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位USB。D22(I2C2RST)是I2C
2復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位I2C2。D21(I2C1RST)是I2C
1復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位I2C1。D20、D19是保留位,始終讀為0。D18(USART3RST)是USART3復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位USART3。D17(USART2RST)是USART2復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位USART2。D16、D15是保留位,始終讀為0。D14(SPI2RST)是SPI2復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位SPI2。第2章 STM32應(yīng)用基礎(chǔ)D13、D12是保留位,始終讀為0。D11(WWDGRST)是窗口看門狗復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位窗口看門狗。D10~D3是保留位,始終讀為0。D2(TIM4RST)是定時(shí)器4復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位定時(shí)器4。D1(TIM3RST)是定時(shí)器3復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位定時(shí)器3。D0(TIM2RST)是定時(shí)器2復(fù)位位。設(shè)為0時(shí),無(wú)效;設(shè)為1時(shí),復(fù)位定時(shí)器2。第2章 STM32應(yīng)用基礎(chǔ)6.AHB外設(shè)時(shí)鐘使能寄存器(RCC_AHBENR)RCC_AHBENR的偏移地址是14H。復(fù)位默認(rèn)值是00000014H。可字、半字和字節(jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31~D5是保留位,始終讀為0。D4(FLITFEN)是閃存接口電路時(shí)鐘使能位。設(shè)為0時(shí),睡眠模式時(shí)閃存接口電路時(shí)鐘關(guān)閉;設(shè)為1時(shí),睡眠模式時(shí)閃存接口電路時(shí)鐘開啟。D3是保留,始終讀為0。D2(SRAMEN)是SRAM時(shí)鐘使能位。設(shè)為0時(shí),睡眠模式時(shí)SRAM時(shí)鐘關(guān)閉;設(shè)為1時(shí),睡眠模式時(shí)SRAM時(shí)鐘開啟。D1是保留位,始終讀為0。D0(DMAEN)是DMA時(shí)鐘使能位。設(shè)為0時(shí),DMA時(shí)鐘關(guān)閉;設(shè)為1時(shí),DMA時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)7.APB2外設(shè)時(shí)鐘使能寄存器(RCC_APB2ENR)RCC_APB2ENR的偏移地址是18H。復(fù)位默認(rèn)值是00000000H。可字、半字和字節(jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31-D15是保留位,始終讀為0。D14(USART1EN)是USART1時(shí)鐘使能位。設(shè)為0時(shí),USART1時(shí)鐘關(guān)閉;設(shè)為1時(shí),USART1時(shí)鐘開啟。D13是保留,始終讀為0。D12(SPI1EN)是SPI1時(shí)鐘使能位。設(shè)為0時(shí),SPI1時(shí)鐘關(guān)閉;設(shè)為1時(shí),SPI1時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)D11(TIM1EN)是TIM1時(shí)鐘使能位。設(shè)為0時(shí),TIM1時(shí)鐘關(guān)閉;設(shè)為1時(shí),TIM1時(shí)鐘開啟。D10(ADC2EN)是ADC2時(shí)鐘使能位。設(shè)為0時(shí),ADC2時(shí)鐘關(guān)閉;設(shè)為1時(shí),ADC2時(shí)鐘開啟。D9(ADC1EN)是ADC1時(shí)鐘使能位。設(shè)為0時(shí),ADC1時(shí)鐘關(guān)閉;設(shè)為1時(shí),ADC1時(shí)鐘開啟。D8、D7是保留位,始終讀為0。D6(IOPEEN)是IO口E時(shí)鐘使能位。設(shè)為0時(shí),IO口E時(shí)鐘關(guān)閉;設(shè)為1時(shí),IO口E時(shí)鐘開啟。D5(IOPDEN)是IO口D時(shí)鐘使能位。設(shè)為0時(shí),IO口D時(shí)鐘關(guān)閉;設(shè)為1時(shí),IO口D時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)D4(IOPCEN)是IO口C時(shí)鐘使能位。設(shè)為0時(shí),IO口C時(shí)鐘關(guān)閉;設(shè)為1時(shí),IO口C時(shí)鐘開啟。D3(IOPBEN)是IO口B時(shí)鐘使能位。設(shè)為0時(shí),IO口B時(shí)鐘關(guān)閉;設(shè)為1時(shí),IO口B時(shí)鐘開啟。D2(IOPAEN)是IO口A時(shí)鐘使能位。設(shè)為0時(shí),IO口A時(shí)鐘關(guān)閉;設(shè)為1時(shí),IO口A時(shí)鐘開啟。D1是保留位,始終讀為0。D0(AFIOEN)是輔助功能IO時(shí)鐘使能位。設(shè)為0時(shí),輔助功能IO時(shí)鐘關(guān)閉;設(shè)為1時(shí),輔助功能IO時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)8.APB1外設(shè)時(shí)鐘使能寄存器(RCC_APB1ENR)RCC_APB1ENR偏移地址是1CH。復(fù)位默認(rèn)值是00000000H??勺?、半字和字節(jié)無(wú)等待訪問。它的32位(D31~D0)含義如下:D31~D29是保留位,始終讀為0。D28(PWREN)是電源時(shí)鐘使能位。設(shè)為0時(shí),電源時(shí)鐘關(guān)閉;設(shè)為1時(shí),電源時(shí)鐘開啟。D27(BKPEN)是備份時(shí)鐘使能位。設(shè)為0時(shí),備份時(shí)鐘關(guān)閉;設(shè)為1時(shí),備份時(shí)鐘開啟。D26是保留位,始終讀為0。D25(CANEN)是CAN時(shí)鐘使能。設(shè)為0時(shí),CAN時(shí)鐘關(guān)閉;設(shè)為1時(shí),CAN時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)D24是保留位,始終讀為0。D23(USBEN)是USB時(shí)鐘使能位。設(shè)為0時(shí),USB時(shí)鐘關(guān)閉;設(shè)為1時(shí),USB時(shí)鐘開啟。D22(I2C2EN)是I2C2時(shí)鐘使能位。設(shè)為0時(shí),I2C2時(shí)鐘關(guān)閉;設(shè)為1時(shí),I2C2時(shí)鐘開啟。D21(I2C1EN)是I2C1時(shí)鐘使能位。設(shè)為0時(shí),I2C1時(shí)鐘關(guān)閉;設(shè)為1時(shí),I2C1時(shí)鐘開啟。D20、D19是保留位,始終讀為0。D18(USART3EN)是USART3時(shí)鐘使能位。設(shè)為0時(shí),USART3時(shí)鐘關(guān)閉;設(shè)為1時(shí),USART3時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)D17(USART2EN)是USART2時(shí)鐘使能位。設(shè)為0時(shí),USART2時(shí)鐘關(guān)閉;設(shè)為1時(shí),USART2時(shí)鐘開啟。D16、D15是保留位,始終讀為0。D14(SPI2EN)是SPI2時(shí)鐘使能位。設(shè)為0時(shí),SPI2時(shí)鐘關(guān)閉;設(shè)為1時(shí),SPI2時(shí)鐘開啟。D13、D12是保留位,始終讀為0。D11(WWDGEN)是窗口看門狗時(shí)鐘使能位。設(shè)為0時(shí),窗口看門狗時(shí)鐘關(guān)閉;設(shè)為1時(shí),窗口看門狗時(shí)鐘開啟。D10~D3是保留位,始終讀為0。第2章 STM32應(yīng)用基礎(chǔ)D2(TIM4EN)是定時(shí)器4時(shí)鐘使能位。設(shè)為0時(shí),定時(shí)器4時(shí)鐘關(guān)閉;設(shè)為1時(shí),定時(shí)器4時(shí)鐘開啟。D1(TIM3EN)是定時(shí)器3時(shí)鐘使能位。設(shè)為0時(shí),定時(shí)器3時(shí)鐘關(guān)閉;設(shè)為1時(shí),定時(shí)器3時(shí)鐘開啟。D0(TIM2EN)是定時(shí)器2時(shí)鐘使能位。設(shè)為0時(shí),定時(shí)器2時(shí)鐘關(guān)閉;設(shè)為1時(shí),定時(shí)器2時(shí)鐘開啟。第2章 STM32應(yīng)用基礎(chǔ)9.備份域控制寄存器(RCC_BDCR)RCC_BDCR偏移地址是20H。復(fù)位默認(rèn)值是0000
0000H??勺?、半字和字節(jié)等待約3個(gè)機(jī)器周期訪問。它的32位(D31~D0)含義如下:D31~D17是保留位,始終讀為0。D16(BDRST)是備份域軟件復(fù)位位。設(shè)為0時(shí),復(fù)位未激活;設(shè)為1時(shí),復(fù)位整個(gè)備份域。D15(RTCEN)是RTC時(shí)鐘使能位。設(shè)為0時(shí),RTC時(shí)鐘關(guān)閉;設(shè)為1時(shí),RTC時(shí)鐘開啟。D14~D10是保留位,始終讀為0。第2章 STM32應(yīng)用基礎(chǔ)D9、D8(RTCSEL[1:0])是RTC時(shí)鐘源選擇位。該位只能被寫入一次,可通過置1
BDRST位來(lái)清除。設(shè)為00時(shí),無(wú)時(shí)鐘;設(shè)為01時(shí),LSE振蕩器作為RTC時(shí)鐘;設(shè)為10時(shí),
LSI振蕩器作為RTC時(shí)鐘;設(shè)為11時(shí),HSE振蕩器在128分頻后作為RTC時(shí)鐘。D7~D3是保留位,始終讀為0。D2(LSEBYP)是外部低速時(shí)鐘振蕩器旁路位。只有在外部32
kHz振蕩器關(guān)閉時(shí),才能寫入該位。設(shè)為0時(shí),LSE時(shí)鐘未被旁路;設(shè)為1時(shí),LSE時(shí)鐘被旁路。D1(LSERDY)是外部低速LSE就緒位。設(shè)為0時(shí),外部32
kHz振蕩器未就緒;設(shè)為1時(shí),外部32
kHz振蕩器就緒。D0(LSEON)是外部低速振蕩器使能位。設(shè)為0時(shí),外部32
kHz振蕩器關(guān)閉;設(shè)為1時(shí),外部32
kHz振蕩器開啟。第2章 STM32應(yīng)用基礎(chǔ)10.控制/狀態(tài)寄存器(RCC_CSR)RCC_CSR偏移地址是24H。復(fù)位默認(rèn)值是0000
0000H。可字、半字和字節(jié)等待約3個(gè)機(jī)器周期訪問。它的32位(D31~D0)含義如下:D31(LPWRRSTF)是低功耗復(fù)位標(biāo)志位。設(shè)為0時(shí),無(wú)低功耗管理復(fù)位發(fā)生;設(shè)為1時(shí),發(fā)生低功耗管理復(fù)位。D30(WWDGRSTF)是窗口看門狗復(fù)位標(biāo)志位。設(shè)為0時(shí),無(wú)窗口看門狗復(fù)位發(fā)生;設(shè)為1時(shí),發(fā)生窗口看門狗復(fù)位。D29(IWDGRSTF)是獨(dú)立看門狗復(fù)位標(biāo)志位。設(shè)為0時(shí),無(wú)獨(dú)立看門狗復(fù)位發(fā)生;設(shè)為1時(shí),發(fā)生獨(dú)立看門狗復(fù)位。第2章 STM32應(yīng)用基礎(chǔ)D28(SFTRSTF)是軟件復(fù)位標(biāo)志位。設(shè)為0時(shí),無(wú)軟件復(fù)位發(fā)生;設(shè)為1時(shí),發(fā)生軟件復(fù)位。D27(PORRSTF)是上電/掉電復(fù)位標(biāo)志位。設(shè)為0時(shí),無(wú)上電/掉電復(fù)位發(fā)生;設(shè)為1時(shí),發(fā)生上電/掉電復(fù)位。D26(PINRSTF)是NRST管腳復(fù)位標(biāo)志位。設(shè)為0時(shí),無(wú)NRST管腳復(fù)位發(fā)生;設(shè)為1時(shí),發(fā)生NRST管腳復(fù)位。D25是保留位,讀操作返回0。D24(RMVF)是清除復(fù)位標(biāo)志位。設(shè)為0時(shí),保持復(fù)位標(biāo)志;設(shè)為1時(shí),清零復(fù)位標(biāo)志。第2章 STM32應(yīng)用基礎(chǔ)D23~D2是保留位,讀操作返回0。D1(LSIRDY)是內(nèi)部低速時(shí)鐘就緒位。設(shè)為0時(shí),LSI(內(nèi)部32
kHz
RC振蕩器)時(shí)鐘未就緒;設(shè)為1時(shí),LSI(內(nèi)部32
kHz
RC振蕩器)時(shí)鐘就緒。D0(LSION)是內(nèi)部低速振蕩器使能位。設(shè)為0時(shí),內(nèi)部32
kHz
RC振蕩器關(guān)閉;設(shè)為1時(shí),內(nèi)部32
kHz
RC振蕩器開啟。第2章 STM32應(yīng)用基礎(chǔ)2.5
STM32系列處理器的存儲(chǔ)結(jié)構(gòu)與映射STM32處理器將存儲(chǔ)器看作是從地址0開始的字節(jié)(存儲(chǔ)空間)的線性組合。在0~3字節(jié)(B)放置第1個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù)(4個(gè)字節(jié)),在4~7B放置第2個(gè)存儲(chǔ)的字?jǐn)?shù)據(jù)(4字節(jié)),依次類推排列。作為32位的微處理器,ARM體系結(jié)構(gòu)所支持的最大尋址空間為4
GB(232B)。內(nèi)存中有兩種格式存儲(chǔ)字?jǐn)?shù)據(jù),稱之為小端格式和大端格式。這種格式根據(jù)最低有效字節(jié)與相鄰較高有效字節(jié)相比是存儲(chǔ)在較低地址還是最高地址來(lái)區(qū)分。小端格式存儲(chǔ)方式下將較低字節(jié)存放在較低地址,大端格式則將較低字節(jié)存放在較高地址,如存儲(chǔ)0x12345678,如圖2.13所示。第2章 STM32應(yīng)用基礎(chǔ)通常情況下,STM32系列處理器在復(fù)位時(shí)確定使用大/小端的工作模式,且在運(yùn)行的過程中不允許對(duì)其進(jìn)行修改。在絕大多數(shù)情況下,STM32系列處理器都使用了小端模式
以避免不必要的麻煩。在這里,也同樣推薦用戶在非特殊情況下都使用小端模式。在STM32F103XX處理器中,只有一個(gè)固定的存儲(chǔ)器映射。這一點(diǎn)可以方便地實(shí)現(xiàn)軟件代碼在各種不同型號(hào)STM32系列處理器之間的移植。需要說明的是,STM32系列處理器中有關(guān)存儲(chǔ)器空間的劃分是比較粗淺的,它允許芯片制造廠商按照各自的需要靈活地分配存儲(chǔ)器空間,以適應(yīng)各種不同的應(yīng)用場(chǎng)合。第2章 STM32應(yīng)用基礎(chǔ)圖2.13
STM32存儲(chǔ)器中的大小端模式第2章 STM32應(yīng)用基礎(chǔ)2.5.1存儲(chǔ)器結(jié)構(gòu)STM32處理器內(nèi)部地址空間的大小為4GB,采用統(tǒng)一編址。用戶編寫的程序代碼可以在代碼區(qū)、內(nèi)部SRAM區(qū),以及外部擴(kuò)展的RAM區(qū)中執(zhí)行,具體的結(jié)構(gòu)分布如圖2.14所示。由于在STM32系統(tǒng)中指令地址和數(shù)據(jù)地址是在不同區(qū)域,因此建議用戶將程序代碼放置到代碼區(qū)。這樣就可以使取址操作和數(shù)據(jù)訪問操作各自使用自己的區(qū)域,而不會(huì)發(fā)生沖突。第2章 STM32應(yīng)用基礎(chǔ)圖2.14
STM32存儲(chǔ)器組織第2章 STM32應(yīng)用基礎(chǔ)在STM32處理器的內(nèi)核中,內(nèi)部SRAM的大小為512MB,主要用于讓芯片制造廠商能夠連接到片上SRAM。這個(gè)區(qū)域中的數(shù)據(jù)可以通過系統(tǒng)總線進(jìn)行訪問。STM32在內(nèi)部SRAM區(qū)域的底部,存在一個(gè)1
MB的空間,成為“位帶區(qū)”(見圖2.14)。“位帶區(qū)”具有一個(gè)32MB且與之對(duì)應(yīng)的“位帶別名區(qū)”,可容納8
MB位
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026貴州省審計(jì)廳所屬事業(yè)單位招聘2人備考題庫(kù)帶答案詳解
- 隋唐時(shí)期介紹
- 職業(yè)健康檔案電子化管理的人才培養(yǎng)體系
- 職業(yè)健康師資教學(xué)檔案管理
- 銅陵2025年安徽銅陵經(jīng)濟(jì)技術(shù)開發(fā)區(qū)招聘工作人員12人筆試歷年參考題庫(kù)附帶答案詳解
- 衢州2025年浙江衢州市柯城區(qū)招聘公辦幼兒園臨聘保育員48人筆試歷年參考題庫(kù)附帶答案詳解
- 聊城2025年山東聊城市市屬企業(yè)統(tǒng)一招聘21人筆試歷年參考題庫(kù)附帶答案詳解
- 棗莊2025年山東棗莊滕州市衛(wèi)生健康系統(tǒng)所屬公立醫(yī)院招聘154人筆試歷年參考題庫(kù)附帶答案詳解
- 廣西2025年廣西退役軍人培訓(xùn)中心招聘筆試歷年參考題庫(kù)附帶答案詳解
- 山東山東水利技師學(xué)院臨時(shí)代課教師招聘7人筆試歷年參考題庫(kù)附帶答案詳解
- 安全生產(chǎn)目標(biāo)及考核制度
- (2026版)患者十大安全目標(biāo)(2篇)
- 大數(shù)據(jù)安全技術(shù)與管理
- 2026青島海發(fā)國(guó)有資本投資運(yùn)營(yíng)集團(tuán)有限公司招聘計(jì)劃筆試備考試題及答案解析
- 2026年北大拉丁語(yǔ)標(biāo)準(zhǔn)考試試題
- 鼻飼技術(shù)操作課件
- 臨床護(hù)理操作流程禮儀規(guī)范
- 2025年酒店總經(jīng)理年度工作總結(jié)暨戰(zhàn)略規(guī)劃
- 空氣栓塞課件教學(xué)
- 置景服務(wù)合同范本
- 隧道掛防水板及架設(shè)鋼筋臺(tái)車施工方案
評(píng)論
0/150
提交評(píng)論