




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
初識STM32西安文理學院自動化教研室本章主要內(nèi)容 6.1STM32介紹 6.2STM32的基本架構(gòu) 6.3STM32的時鐘樹 6.4STM32單片機最小系統(tǒng)6.1STM32介紹本節(jié)主要內(nèi)容 6.1.1什么是STM32 6.1.2STM32與ARM的關(guān)系 6.1.3STM32F103ZET6介紹 6.1.4STM32能做什么6.1.1什么是STM32從字面意義來看:ST:意法半導體,是一個公司的名字。M:Microelectronics的縮寫,表示微控制器,要注意微控制器和微處理器的區(qū)別32:32bit的意思,表示這是一個32bit的微控制器西安文理學院自動化教研室6.1.2STM32與ARM的關(guān)系 ARM是英國的芯片設(shè)計公司,其最成功的莫過于32位嵌入式CPU核----ARM系列,最常用的是ARM7和ARM9,ARM公司主要提供IP(Intellectual
Property
core知識產(chǎn)權(quán)的核心)核,就是CPU的內(nèi)核結(jié)構(gòu),只包括最核心的部分,并不是完整的處理器。ARM把這個核賣給各大半導體公司,如
Philips
三星,ATMEL,甚至Intel等許多公司。ARM為了對付
8位機市場,推出了一系列
Cortex-M核,STM32就是將Cortex-M作為內(nèi)核,通過一些外設(shè)等組合封裝在一起就成了如今火爆的32位嵌入式處理器。
西安文理學院自動化教研室我們開發(fā)板上使用的是STM32F103,也就是M3內(nèi)核Cortex-M3采用ARMv7-M架構(gòu)
ARMv7架構(gòu)定義了三大分工明確的系列:“A”系列:面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應用“R”系列:針對實時系統(tǒng);“M”系列:對微控制器。Cortex-M4采用ARMv7-ME架構(gòu),Cortex-M0采用ARMv6-M架構(gòu),Cortex-A5/A8采用ARMv7-A架構(gòu),
傳統(tǒng)的ARM7系列采用的是ARMv4T架構(gòu)。6.1.3STM32F103ZET6介紹首先我們看下STM32是如何分類的:
西安文理學院自動化教研室STM32的命名規(guī)則
西安文理學院自動化教研室
我們開發(fā)板使用的是STM32F103ZET6芯片,其內(nèi)部資源介紹如下:(1)內(nèi)核:32位高性能ARMCortex-M3處理器。時鐘:高達72M,實際還可以超頻一點。單周期乘法和硬件除法。西安文理學院自動化教研室(2)IO口:STM32F103ZET6:144引腳112個IO,大部分IO口都耐5V(模擬通道除外),支持調(diào)試:SWD和JTAG,SWD只要2根數(shù)據(jù)線(3)存儲器容量:512KFLASH,64KSRAM
西安文理學院自動化教研室(4)時鐘,復位和電源管理:
2.0~3.6V電源和IO電壓上電復位,掉電復位和可編程的電壓監(jiān)控強大的時鐘系統(tǒng)-4~16M的外部高速晶振-內(nèi)部8MHz的高速RC振蕩器-內(nèi)部40KHz低速RC振蕩器,看門狗時鐘-內(nèi)部鎖相環(huán)(PLL,倍頻),一般系統(tǒng)時鐘都是外部或者內(nèi)部高速時鐘經(jīng)過PLL倍頻后得到-外部低速32.768K的晶振,主要做RTC時鐘源(5)低功耗:-睡眠,停止和待機三種低功耗模式-可用電池為RTC和備份寄存器供電(6)AD:-3個12位AD(多達21個外部測量通道) -轉(zhuǎn)換范圍:0-3.6V(參考電源電壓)-內(nèi)部通道可以用于內(nèi)部溫度測量-內(nèi)置參考電壓(7)DA:2個12位DA(8)DMA:12個DMA通道(7通道DMA1,5通道DMA2),支持外設(shè):定時器,ADC,DAC,SDIO,I2S,SPI,I2C,和USART西安文理學院自動化教研室(9)定時器:多達11個定時器
-4個通用定時器 -2個基本定時器 -2個高級定時器 -1個系統(tǒng)定時器 -2個看門狗定時器西安文理學院自動化教研室(10)通信接口:多達13個通信接口-2個I2C接口-5個串口-3個SPI接口-1個CAN2.0-1個USBFS-1個SDIO西安文理學院自動化教研室
那么我們怎么知道相應管腳的具體功能呢?答:我們可以通過芯片數(shù)據(jù)手冊查找。西安文理學院自動化教研室6.1.4STM32能做什么
STM32的用處取決于其內(nèi)部資源,前面我們了解了STM32內(nèi)部擁有非常多的通信接口。所以如果你使用的模塊擁有此接口都可以通信。比如:USART:ESP8266WIFI模塊、GSM模塊、藍牙模塊、GPS模塊、指紋識別模塊等。IIC:EEPROM、MPU6050陀螺儀、0.96寸OLED屏、電容屏等。SPI:串行FLASH、以太網(wǎng)W5500、VS1003/1053音頻模塊、SPI接口的OLED屏、電阻屏等。AD/DA:光敏傳感器模塊、煙霧傳感器模塊、可燃氣體傳感器模塊、簡易示波器等其他的一些接口這里就不羅列,反正STM32能做的東西太多太多。西安文理學院自動化教研室日常生活中可見的電子產(chǎn)品智能手環(huán),微型四軸飛行器,平衡車、掃地機、移動POST機,智能電飯鍋,3D打印機、機器人等。
總之學好STM32用處是大大的,而眾多STM32芯片中,M3內(nèi)核的STM32F103ZET6芯片當然是首選。大家只要認真學習本套視頻,相信學好STM32并不是神話!西安文理學院自動化教研室6.2STM32的基本架構(gòu)本節(jié)主要內(nèi)容 1.STM32芯片架構(gòu) 2.STM32芯片系統(tǒng)結(jié)構(gòu)
1.STM32芯片架構(gòu)我們這里講的STM32F1系統(tǒng)架構(gòu)主要針對的STM32F103系列芯片。
2.STM32芯片系統(tǒng)結(jié)構(gòu)6.3STM32的時鐘樹本節(jié)主要內(nèi)容 6.3.1
STM32時鐘源 6.3.2內(nèi)部RC振蕩器與外部晶振的選擇 6.3.3STM32常用的時鐘6.3.4時鐘輸出的使能6.3.5時鐘設(shè)置的基本流程
時鐘樹6.3.1STM32時鐘源在STM32中,有5個時鐘源,分別為HSI、HSE、LSI、LSE、PLL。HSI是高速內(nèi)部時鐘,RC振蕩器,頻率為8MHz??勺鳛橄到y(tǒng)時鐘或PLL鎖相環(huán)的輸入。HSE是高速外部時鐘,可接石英諧振器、陶瓷諧振器,或者接外部時鐘源,它的頻率范圍為4MHz~16MHz。HSE可以作為系統(tǒng)時鐘和PLL鎖相環(huán)輸入,還可以經(jīng)過128分頻后輸入給RTC。LSI是低速內(nèi)部時鐘,RC振蕩器,頻率為40kHz??晒┆毩⒖撮T狗和RTC使用,并且獨立看門狗只能使用LSI時鐘。LSE是低速外部時鐘,通常外接一個32.768KHz的晶振,供RTC使用。PLL是鎖相環(huán),用于倍頻輸出,其時鐘輸入源可選擇為HIS/2、HSE或者HSE/2,經(jīng)過2~16倍頻后輸入給PLLCLK,如果系統(tǒng)時鐘選擇由PLLCLK提供,則PLLCLK最大值不要超過72M。6.3.2內(nèi)部RC振蕩器與外部晶振的選擇STM32可以選擇內(nèi)部時鐘(內(nèi)部RC振蕩器),也可以選擇外部時鐘(外部晶振)。但如果使用內(nèi)部RC振蕩器而不使用外部晶振,必須清楚以下幾點:(1)對于100腳或144腳的產(chǎn)品,OSC_IN應接地,OSC_OUT應懸空。(2)對于少于100腳的產(chǎn)品,有兩種接法:①方法1:OSC_IN和OSC_OUT分別通過10kΩ電阻接地。此方法可提高EMC性能。②方法2:分別重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1為推挽輸出并輸出0。此方法相對于方法1,可以減小功耗并節(jié)省兩個外部電阻。(3)內(nèi)部8MHz的RC振蕩器的誤差在1%左右,內(nèi)部RC振蕩器的精度通常比用HSE(外部晶振)要低十倍以上。STM32的ISP就是利用了HSI(內(nèi)部RC振蕩器)。6.3.3STM32常用的時鐘(1)SYSCLK系統(tǒng)時鐘。它是STM32中絕大部分部件工作的時鐘源。它的時鐘來源可以由HSI、HSE、PLLCLK提供,一般程序中采用PLL倍頻到72Mhz。(2)MCO是STM32的一個時鐘輸出IO(PA8),它可以選擇一個時鐘信號輸出,可以選擇為PLL輸出的2分頻、HSI、HSE或者系統(tǒng)時鐘。這個時鐘可以用來給外部其他系統(tǒng)提供時鐘源。(3)RTC時鐘。從時鐘樹圖中線的流向可知,RTC時鐘來源可以是內(nèi)部低速的LSI時鐘,外部低速LSE時鐘(32.768K),還可以通過HSE128分頻后得到。(4)USB時鐘。STM32中有一個全速功能的USB模塊,其串行接口引擎需要一個頻率為48MHz的時鐘源,該時鐘源只能從PLL輸出端獲取,可以選擇為1.5分頻或者1分頻,也就是當需要使用USB模塊時,PLL必須使能,并且PLLCLK時鐘頻率配置為48MHz或72MHz。(5)其他所有外設(shè)。從時鐘圖上可以看出,其他所有外設(shè)的時鐘最終來源都是SYSCLK。SYSCLK通過AHB分頻器分頻后送給各模塊使用。這些模塊包括:①AHB總線、內(nèi)核、內(nèi)存和DMA使用的HCLK時鐘。②通過8分頻后送給Cortex系統(tǒng)定時器時鐘,即SysTick。③直接送給Cortex的空閑運行時鐘FCLK。④送給APB1分頻器。APB1分頻器輸出一路供APB1外設(shè)使用(PCLK1,最大頻率36MHz),另一路送給定時器(Timer)1、2倍頻使用。⑤送給APB2分頻器。APB2分頻器分頻輸出一路供APB2外設(shè)使用(PCLK2,最大頻率72MHz),另一路送給定時器(Timer)1倍頻器使用。⑥送給ADC分頻器。ADC分頻器經(jīng)過2、4、6、8分頻后送給ADC1/2/3使用,ADC最大頻率為14MHz。⑦二分頻后送給SDIO使用。6.3.4時鐘輸出的使能在以上的時鐘輸出中有很多是帶使能控制的,如AHB總線時鐘、內(nèi)核時鐘、各種APB1外設(shè)時鐘、APB2外設(shè)時鐘等。當需要使用某模塊時,必須先使能對應的時鐘。需要注意的是定時器的倍頻器,當APB的分頻為1時,它的倍頻值為1,否則它的倍頻值就為2。連接在APB1上的設(shè)備(低速外設(shè))有:電源接口、備份接口、CAN、USB、I2Cl、I2C2、UART2、UART3、SPI2、窗口看門狗、Timer2、Timer3、Timer4。注意:USB模塊雖然需要一個單獨的48MHz時鐘信號,但它不是供USB模塊工作的時鐘,而只是提供給串行接口引擎(SIE)使用的時鐘,USB模塊工作的時鐘應該是由APB1提供的。連接在APB2上的設(shè)備(高速外設(shè))有:GPIO_A-E、USARTI、ADC1、ADC2、ADC3、TIM1、TIM8、SPI1、AFIO。
6.3.5時鐘設(shè)置的基本流程一般情況下單片機的時鐘配置是單片機程序中的第一步,也是很重要的一步。這時候我們需要考慮以下幾個問題。(1)系統(tǒng)時鐘的時鐘源用哪個?(2)系統(tǒng)時鐘頻率要多少?(3)每個模塊的時鐘頻率要多少?(4)如果外部時鐘出了問題,這個時候時鐘是怎么運行的?假設(shè),使用HSE時鐘,并且使用ST的固件庫函數(shù),那么在程序中設(shè)置時鐘參數(shù)的流程如表6.5所示。6.4STM32單片機最小系統(tǒng)本節(jié)主要內(nèi)容 6.4.1電源電路 6.4.2復位電路 6.4.3外部時鐘電路6.4.4啟動引腳和ISP編程6.4.5調(diào)試端口6.4.1電源電路STM32使用單電源供電,其電壓范圍必須為2.0~3.6V,同時通過它內(nèi)部的一個電壓調(diào)整器,可以給Cortex-M3核心提供1.8V的工作電壓。STM32還有兩個可選電源的模塊:實時時鐘和一小部分備份寄存器,它們可以在STM32進入深度節(jié)電模式后,在備份電池的支持下保持數(shù)據(jù)不丟失。但如果STM32最小系統(tǒng)沒有使用備用電池,則VBAT引腳必須和VDD引腳相連接。ADC模塊。如果要啟用ADC功能,則主電源VDD必須限制在2.4~3.6V。在引腳數(shù)大于100的STM32版本里,ADC模塊有額外的參考電壓引腳VREF+和VREF-,則VREF-引腳必須與VDDA相連,而VREF+可以接入2.4V~VDD。在其他版本型號的STM32中,沒有VREF+和VREF-引腳,他們在芯片內(nèi)部與ADC的電源(VDDA)和地(VSSA)相聯(lián)。每個電壓供應引腳都需要一個去偶電容。STM32整體電源框圖如圖6.3所示。圖6.3STM32整體電源框圖6.4.2復位電路接觸過51單片機的讀者都知道,復位電路對于單片機來說是必不可少的一部分。復位就是把單片機當前的運行狀態(tài)恢復到起始狀態(tài)的操作。STM32F1系列單片機支持三種復位形式,分別為系統(tǒng)復位、電源復位和備份區(qū)域復位。其芯片內(nèi)部的復位電路結(jié)構(gòu)如圖6.4所示。
圖6.4STM32內(nèi)部復位電路結(jié)構(gòu)1.系統(tǒng)復位除了時鐘控制器的RCC_CSR寄存器中的復位標志位和備份區(qū)域中的寄存器以外,系統(tǒng)復位將復位所有寄存器至它們的復位狀態(tài)。當發(fā)生以下任一事件時,產(chǎn)生一個系統(tǒng)復位:(1)NRST引腳上的低電平(外部復位)。(2)窗口看門狗計數(shù)終止(WWDG復位)。(3)獨立看門狗計數(shù)終止(IWDG復位)。(4)軟件復位(SW復位)。(5)低功耗管理復位??赏ㄟ^查看RCC_CSR控制狀態(tài)寄存器中的復位狀態(tài)標志位識別復位事件來源。2.電源復位電源復位能夠復位除了備份區(qū)域寄存器之外的所有寄存器的狀態(tài)。當以下事件中之一發(fā)生時,產(chǎn)生電源復位:(1)上電/掉電復位(POR/PDR復位)。(2)從待機模式中返回。3.備份域復位備份區(qū)域擁有兩個專門的復位,它們只影響備份區(qū)域。當以下事件中之一發(fā)生時,產(chǎn)生備份區(qū)域復位。(1)軟件復位,備份區(qū)域復位可由設(shè)置備份域控制寄存器(RCC_BDCR)中的BDRST位產(chǎn)生。(2)在VDD和VBAT兩者掉電的前提下,VDD或VBAT上電將引發(fā)備份區(qū)域復位。對于我們常用的復位電路,在這里其實對應的是系統(tǒng)復位中的第一個條件,即令NRST引腳上的來一個低電平信號(外部復位)引發(fā)的系統(tǒng)復位,其常用的復位電路圖如圖6.5所示。圖6.5STM32常用復位電路由圖6.5可以看出,當按鍵按下時,NRST引腳和地相接,從而被拉低,產(chǎn)生一個低電平信號,實現(xiàn)復位。當系統(tǒng)上電瞬間,電容充電導致NRST在上電瞬間被拉為低電平信號并保持一定的時間,實現(xiàn)上電復位。6.4.3外部時鐘電路STM32帶有內(nèi)部RC振蕩器,可以為內(nèi)部PLL(鎖相環(huán))提供時鐘,這樣STM32依靠內(nèi)部振蕩器就可以在72MHz的滿速狀態(tài)運行。但是內(nèi)部RC振蕩器相比外部晶振來說不夠準確,同時也不夠穩(wěn)定,所以在條件允許的情況下,建議盡量使用外部時鐘源。典型的外部晶振電路如圖6.6所示。圖6.6晶振電路圖6.6中,HSE(高速外部時鐘)和LSE(低速外部時鐘)都是采用的無源晶振的形式,HSE通過OSC_IN和OSC_OUT引腳外接一個8MHz的晶振。LSE通過PC14和PC15引腳外接一個32.768KHz的晶振。在晶振的兩側(cè)有兩個電容,稱為負載電容,也叫起振電容,它有兩個作用:一是使晶振兩端的等效電容等于或接近于負載電容;二是起濾波的作用,濾除晶振波形中的高頻雜波。6.4.4啟動引腳和ISP編程STM32有3種啟動模式。用戶可以通過STM32的兩個外部引腳BOOT0和BOOT1來選擇這3種啟動方式。具體的啟動模式和對應的BOOT0和BOOT1的值見表6.6。STM32芯片內(nèi)部有一塊特定的區(qū)域,叫做系統(tǒng)存儲器。芯片出廠時在這個區(qū)域預置了一段啟動引導程序(Bootloader),就是通常說的ISP程序,其作用就是通過串口將程序下載到Flash中,為之后的軟件更新提供便利,用戶不需要利用仿真口進行下載程序,從而極大的提高了工作效率。STM32復位之后,如果檢測到BOOT1引腳為低電平,BOOT0引腳為高電平,芯片就執(zhí)行內(nèi)部固化的ISP引導程序,接收來自上位機的命令和數(shù)據(jù)。此后可進行ISP編程,而USART1是ISP編程默認使用的通信接口,可用來從PC端下載和燒寫代碼,因此用戶還需要為此相應地添加一個RS232驅(qū)動器件。需要要注意的是,一般不使用內(nèi)置SRAM啟動(BOOT1=1,BOOT0=1)。一般BOOT0和BOOT1跳線都跳到0(GND),即正常的從片內(nèi)Flash運行。6.4.5調(diào)試端口為了讓STM32最小系統(tǒng)運行起來,還需要硬件調(diào)試端口,這樣才可以使用調(diào)試仿真器鏈接STM32。STM32的CoreSight調(diào)試系統(tǒng)支持兩種接口標準:5針JTAG端口和2針的SWD串行接口。這兩種接口都需要犧牲GPIO(即普通IO口)來供給調(diào)試器仿真器使用。STM32復位之后,CPU會將這些引腳置于第2功能狀態(tài),所以此時調(diào)試端口就已經(jīng)可以使用了。如果用戶希望使用這些引腳作GPIO,則必須在應用程序中將它們切換回普通I/O狀態(tài)。STM32上的5針接口一般以20針的JTAG標準調(diào)試端口引出;而2針串行接口使用GPIOA.14作為串行時鐘線。6.5STM32程序開發(fā)的模式本節(jié)主要內(nèi)容 6.5.1基于寄存器的開發(fā)模式 6.5.2基于ST固件庫的開發(fā)模式 6.5.3基于操作系統(tǒng)的開發(fā)模式6.5.4三種開發(fā)模式的選用建議6.5.1基于寄存器的開發(fā)模式(1)與硬件關(guān)系密切。程序編寫直接面對底層的部件、寄存器和引腳。(2)要求對STM32的結(jié)構(gòu)與原理把握得很清楚,要求編程者比較熟練地掌握STM32單片機的體系架構(gòu)、工作原理,尤其是對寄存器及其功能要很熱悉。(3)程序代碼比較緊湊、短小,代碼冗余相對較少,因此源程序生成的機
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)年報封面協(xié)議封皮圖片制作合同
- 商業(yè)空間內(nèi)部裝修承包合同
- 2025年江漢藝術(shù)職業(yè)學院單招職業(yè)適應性測試題庫新版
- 2025年度文化創(chuàng)意產(chǎn)業(yè)資金托管合同
- 2025年農(nóng)村土地承包經(jīng)營權(quán)流轉(zhuǎn)合同模板
- 2025年度抖音短視頻內(nèi)容原創(chuàng)保護與維權(quán)合同
- 2025年度房產(chǎn)購房意向金確認書
- 2025年度手工藝非物質(zhì)文化遺產(chǎn)保護合同
- 2025年度房產(chǎn)抵押債務清償與產(chǎn)權(quán)變更及資產(chǎn)處置合同
- 2025年度藝術(shù)培訓機構(gòu)與電商平臺合作協(xié)議
- 林規(guī)發(fā)〔2016〕58號防護林造林工程投資估算指標
- 非公開發(fā)行公司債券的法律意見書模版
- 汽車空調(diào)技術(shù)與維修教案
- 企業(yè)管理概論-課件全書課件完整版ppt全套教學教程最全電子教案電子講義(最新)
- 餐飲服務食品安全監(jiān)督量化分級動態(tài)等級評定檢查表
- 北師大版語文選修《蕭蕭》ppt課件1
- 大學生職業(yè)素養(yǎng)課件-5第五單元學會有效溝通-PPT課件
- 《談骨氣》課文閱讀(共2頁)
- 病原生物與免疫學(中職)緒論PPT課件
- 新起點小學英語一年級上冊單詞卡片(共23頁)
- 蝴蝶蘭PPT課件
評論
0/150
提交評論