上課課件1X傳感網(wǎng)應用開發(fā)資料1 STM32開發(fā)基礎(chǔ)_第1頁
上課課件1X傳感網(wǎng)應用開發(fā)資料1 STM32開發(fā)基礎(chǔ)_第2頁
上課課件1X傳感網(wǎng)應用開發(fā)資料1 STM32開發(fā)基礎(chǔ)_第3頁
上課課件1X傳感網(wǎng)應用開發(fā)資料1 STM32開發(fā)基礎(chǔ)_第4頁
上課課件1X傳感網(wǎng)應用開發(fā)資料1 STM32開發(fā)基礎(chǔ)_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

,“1+X”傳感網(wǎng)應用開發(fā)STM32基礎(chǔ)開發(fā),北京新大陸時代教育科技有限公司,01,STM32基礎(chǔ)知識,02,開發(fā)環(huán)境的搭建與工程的建立,03,LED流水燈應用開發(fā),目錄,CONTENTS,04,按鍵控制呼吸燈應用開發(fā),05,串行通信控制LED燈應用開發(fā),06,電池電量監(jiān)測應用開發(fā),STM32基礎(chǔ)開發(fā),1,STM32基礎(chǔ)知識,STM32是意法半導體(STMicroelectronics,簡稱ST)有限公司出品的一系列微控制器(MicroControllerUnit,簡稱MCU)的統(tǒng)稱。,展示了STM32微控制器的產(chǎn)品家族。,STM32基礎(chǔ)知識,STM32微控制器的命名規(guī)則,STM32基礎(chǔ)知識,下面以一個具體的微控制器型號(STM32F103VET6)為例來說明型號中各部分的含義,如表2-1所示。,STM32基礎(chǔ)知識,STM32微控制器的主要特征,(1)32位ARMCortex-M3內(nèi)核CPU,(2)存儲,(3)時鐘、復位和電源管理,(4)低功耗,(5)3個12bit,1sA/D轉(zhuǎn)換器(最多支持21個通道),(6)2個12bitD/A轉(zhuǎn)換器,(7)調(diào)試模式,(8)最多112個快速I/O口,(9)11個定時器,(10)多達13個通信接口,(11)CRC計算單元,96位唯一ID,(12)無鉛(ECOPACK)封裝,STM32基礎(chǔ)知識,STM32的應用領(lǐng)域,STM32基礎(chǔ)知識,2,開發(fā)環(huán)境的搭建與工程的建立,2,任務要求,本任務要求搭建基于STM32CubeMX工具和HAL庫的STM32微控制器的開發(fā)環(huán)境,生成可在MDK-ARM集成開發(fā)環(huán)境下運行的工程。正確地配置、編譯工程后,將其下載至開發(fā)板中運行。,2,知識連接,1.STM32的軟件開發(fā)庫,在學習STM32的軟件開發(fā)模式之前,我們有必要先了解STM32的軟件開發(fā)庫。ST公司為開發(fā)者提供了多個軟件開發(fā)庫,如:標準外設(shè)庫、HAL庫與LL庫。另外,ST公司還針對F0與L0系列MCU推出了STM32Snippets示例代碼集合。,標準外設(shè)庫推出時間最早,HAL庫次之,而LL庫是最近才新增的,目前支持的芯片較少,尚未覆蓋全系列產(chǎn)品。ST公司為這些軟件開發(fā)庫配套了齊備的開發(fā)文檔,為開發(fā)者的使用提供了極大的方便。,2,知識連接,2.STM32的軟件開發(fā)模式,開發(fā)者基于ST公司提供的軟件開發(fā)庫進行應用程序的開發(fā),常用的STM32軟件開發(fā)模式主要有以下幾種:,(1)基于寄存器的開發(fā)模式,(2)基于標準外設(shè)庫的開發(fā)模式,(3)基于STM32Cube的開發(fā)模式,這種開發(fā)模式對開發(fā)者的要求較低:開發(fā)者只要會調(diào)用API即可編寫程序。基于標準外設(shè)庫編寫的代碼容錯性好且后期維護簡單,其缺點是運行速度相對寄存器級的代碼偏慢??偟膩碚f,這種開發(fā)模式適合快速入門,大多數(shù)初學者會選擇這種開發(fā)模式。,基于寄存器編寫的代碼簡練、執(zhí)行效率高。這種開發(fā)模式有助于開發(fā)者從細節(jié)上了解STM32微控制器的架構(gòu)與工作原理,但由于STM32微控制器的片上外設(shè)多且寄存器功能五花八門,因此開發(fā)者需要花費很多時間精力研究產(chǎn)品手冊??偟膩碚f,這種開發(fā)模式適合有較強編程功底的開發(fā)者。,基于STM32Cube的開發(fā)模式是ST公司目前主推的一種模式,對于近年來推出的新產(chǎn)品,ST公司也已不為其配備標準外設(shè)庫。因此,為了順應技術(shù)發(fā)展的潮流,本書選取了基于STM32Cube的開發(fā)模式,后續(xù)的任務實施的講解,都是基于這種開發(fā)模式。,2,知識連接,3.STM32的集成開發(fā)環(huán)境,根據(jù)ST公司官網(wǎng)顯示,支持STM32開發(fā)的IDEs(IntegratedDevelopmentEnvironments,集成開發(fā)環(huán)境)有20余種,其中包括商業(yè)版軟件和純免費的軟件。目前比較常用的商業(yè)版IDE有MDK-ARM與IAR-EWARM,免費的IDE包括SW4STM32、TrueSTUDIO和CoIDE等。另外,ST官方推薦使用STM32CubeMX軟件可視化地進行芯片資源和管腳的配置,然后生成項目的源程序,最后導入IDEs中進行編譯、調(diào)試與下載。,本書在后續(xù)的任務實施講解中,將采用“STM32CubeMX+MDK-ARM”的開發(fā)工具組合。,根據(jù)任務要求,利用STM32CubeMX進行功能配置;生成基于MDK-ARM集成開發(fā)環(huán)境的初始代碼;添加功能邏輯完成應用開發(fā)。,2,01,下載安裝包并安裝,02,安裝軟件包,任務實施,1.MDK-ARM的安裝,2,01,下載安裝包并安裝,02,嵌入式軟件包的安裝,任務實施,2.STM32CubeMX的安裝,2,任務實施,3.ST-Link驅(qū)動程序的安裝,ST-Link是ST公司官方出品的一款支持STM32系列單片機的程序下載調(diào)試工具,使用前應安裝相應的驅(qū)動程序。MDK-ARM的安裝目錄中包含了ST-Link下載調(diào)試工具的驅(qū)動程序,其位于“C:Keil_v5ARMSTLinkUSBDriver”路徑,如圖中的標號處所示。讀者的PC機如果安裝了64位的操作系統(tǒng),則直接執(zhí)行上述路徑下的“dpinst_amd64.exe”可執(zhí)行文件即可完成驅(qū)動程序的安裝,如圖中的標號處所示。,2,任務實施,4.建立工程,建立工程存放的文件夾,新建STM32CubeMX工程,配置GPIO功能,配置調(diào)試端口,配置MCU時鐘樹,保存STM32CubeMX工程,生成C代碼初始工程,2,任務實施,5.完善main()函數(shù),打開后的工程如圖所示,展開左側(cè)的“工程列表”窗口,打開“main.c”文件(右圖的標號處),在while(1)代碼段中添加標號處所示的兩行代碼。,2,任務實施,6.C代碼工程配置,2,任務實施,6.C代碼工程配置,2,任務實施,7.編譯工程、下載并運行,本工程運行的現(xiàn)象是LED2閃爍,亮1秒滅1秒,周期為2秒。,3,LED流水燈應用開發(fā),3,任務要求,本任務要求設(shè)計一個LED流水燈系統(tǒng),具體要求如下:系統(tǒng)中有8個LED燈,分別是LED1LED8。系統(tǒng)上電時,8個LED燈默認為熄滅狀態(tài)。接下來8個LED燈依次點亮,即:LED1點亮1秒后熄滅,然后LED2點亮1秒后熄滅最后LED8點亮1秒后熄滅,并以此循環(huán)往復。,3,知識連接,1.認識STM32Cube嵌入式軟件包,接下來以STM32CubeF1為例,介紹STM32Cube嵌入式軟件包的構(gòu)成。點擊STM32CubeMX軟件上方的“Help”菜單,選擇“UpdaterSettings”選項,在彈出的設(shè)置框中可找到軟件包的存放地址,如圖中標號處所示。,3,知識連接,進入STM32Cube嵌入式軟件包的存放地址,可以看到軟件包由6個文件夾和2個文件構(gòu)成,如圖所示。,“_htmresc”文件夾、“package.xml”和“Release_Notes.html”文件是軟件包發(fā)布記錄及一些圖標資源。Documentation文件夾:存放軟件包的幫助文檔,為“.pdf”格式。Drivers文件夾:存放STM32Cube固件驅(qū)動函數(shù)庫。Middlewares文件夾:存放中間件組件。Projects文件夾:存放實例(Examples)、應用程序(Applications)、演示案例(Demonstrations)。Utilities文件夾:存放一些工具類雜項。,3,知識連接,圖展示了STM32Cube軟件包的組件構(gòu)成框架。,對應軟件包中“DriversSTM32F1xx_HAL_Driver”文件夾;對應軟件包中“Projects開發(fā)板文件夾Examples”文件夾;對應軟件包中“Middlewares”文件夾;對應軟件包中“Projects開發(fā)板文件夾Demonstrations”文件夾;對應軟件包中“Utilities”文件夾;對應軟件包中“DriversCMSIS”文件夾;STM32CubeMX軟件。,3,知識連接,2.工程架構(gòu)分析,在進行應用開發(fā)之前,我們有必要對STM32CubeMX軟件生成的初始C代碼工程進行了解,如:了解工程架構(gòu)、了解主要的函數(shù)功能與執(zhí)行過程。打開“task1_ProjectFirst”,如圖所示。,3,知識連接,3.GPIO工作模式配置,GPIO工作模式配置相關(guān)的函數(shù)API主要位于“stm32f1xx_hal_gpio.c”和“stm32f1xx_hal_gpio.h”文件中。利用HAL庫進行應用開發(fā)時,各外設(shè)的初始化一般通過對初始化結(jié)構(gòu)體的成員賦值來完成。某個GPIO端口的初始化函數(shù)原型如下:,typedefstructuint32_tPin;/要初始化的GPIO引腳編號uint32_tMode;/GPIO引腳的工作模式uint32_tPull;/GPIO引腳的上拉/下拉形式uint32_tSpeed;/GPIO引腳的輸出速度GPIO_InitTypeDef;,接下來主要對GPIO引腳的工作模式這個成員進行介紹。GPIO的工作模式主要有以下幾種:GPIO_MODE_INPUT:輸入模式GPIO_MODE_OUTPUT_PP:推挽輸出模式GPIO_MODE_OUTPUT_OD:開漏輸出模式GPIO_MODE_AF_PP:推挽復用模式GPIO_MODE_AF_OD:開漏復用模式GPIO_MODE_AF_INPUT:復用輸入模式GPIO_MODE_ANALOG:模擬量輸入模式,第一個參數(shù)是需要初始化的GPIO端口,對于STM32F103VET6型號來說,取值范圍是GPIOAGPIOE。第二個參數(shù)是初始化參數(shù)的結(jié)構(gòu)體指針,結(jié)構(gòu)體類型為GPIO_InitTypeDef。,voidHAL_GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_Init),3,知識連接,4.定時器基本定時功能配置,(1)STM32F103VE型號MCU定時器概述,STM32F103VE型號MCU共有8個定時器,編號為TIM1TIM8,其中包括2個高級控制定時器、4個通用定時器和2個基本定時器。,3,知識連接,(2)基本定時器功能框圖,計數(shù)器寄存器(TIMx_CNT),預分頻器寄存器(TIMx_PSC),自動重載寄存器(TIMx_ARR),3,知識連接,(3)定時器基本初始化結(jié)構(gòu)體介紹,typedefstructuint32_tPrescaler;/定時器時鐘源分頻系數(shù)uint32_tCounterMode;/計數(shù)模式uint32_tPeriod;/周期(自動重載值)uint32_tClockDivision;/定時器內(nèi)部時鐘分頻系數(shù)uint32_tRepetitionCounter;/重復計數(shù)值uint32_tAutoReloadPreload;/是否啟用預加載功能TIM_Base_InitTypeDef;,3,知識連接,(4)配置定時器的工作參數(shù),根據(jù)本任務的要求,LED流水燈每隔1秒鐘切換一次顯示效果。因此可以使能TIM6的更新中斷,并將時間間隔配置為1秒鐘。,配置CK_CNT頻率TIM6掛載在APB1總線上,定時器時鐘源頻率(CK_INT=CK_PSC)為36MHz2=72MHz??蓪IMx_PSC配置為7199,根據(jù)計算公式可得:fCK_CNT=72MHz/(7199+1)=10000Hz(周期為100s)配置自動重載寄存器TIMx_ARR值1s(1000000s)100us=10000=(TIMx_ARR+1)即:TIMx_ARR=100001=9999,3,任務實施,建立工程存放的文件夾,新建STM32CubeMX工程,選擇MCU型號,配置調(diào)試端口,配置MCU時鐘樹,配置LED燈相關(guān)的GPIO功能,配置定時器TIM6的參數(shù)與中斷功能,保存STM32CubeMX工程,1.建立STM32CubeMX工程并生成初始C代碼,生成初始C代碼工程,3,01,使能TIM6更新中斷,02,編寫TIM6更新中斷服務程序,任務實施,2.完善代碼,03,添加自定義變量和函數(shù)定義,04,編寫main()函數(shù)的主循環(huán)程序,編譯程序并下載運行后的現(xiàn)象是系統(tǒng)上電時,8個LED燈默認為熄滅狀態(tài),接下來8個LED燈依次點亮。,4,按鍵控制呼吸燈應用開發(fā),4,任務要求,本任務要求設(shè)計一個可通過按鍵進行控制的呼吸燈系統(tǒng),具體要求如下:使用外部中斷實現(xiàn)按鍵功能;LED燈的顯示效果為“逐漸變亮”然后“逐漸變暗”;系統(tǒng)剛上電時,LED燈為關(guān)閉狀態(tài)。第奇數(shù)次按下按鍵,LED燈顯示呼吸燈效果;第偶數(shù)次按下按鍵,LED燈關(guān)閉,并以此循環(huán)往復。按鍵與呼吸燈的電路原理圖如圖2-36所示,其中按鍵的GPIO引腳為PC13,呼吸燈LED與GPIO引腳PB8相連。,知識連接,1.STM32F1的中斷管理,STM32F1系列微控制器支持多個中斷,互聯(lián)型產(chǎn)品支持78個中斷,其他產(chǎn)品支持70個中斷。如:STM32F103VET6型號支持10個系統(tǒng)異常和60個可屏蔽中斷。具有16級可編程的中斷優(yōu)先級,用戶在編程時主要對60個可屏蔽中斷進行管理與配置。,對“搶占優(yōu)先級”和“子優(yōu)先級”在程序執(zhí)行過程中的判定規(guī)則說明如下:若兩個中斷的“搶占優(yōu)先級”與“子優(yōu)先級”都相同,則哪個中斷先發(fā)生就先執(zhí)行誰;“搶占優(yōu)先級”高的中斷可以打斷“搶占優(yōu)先級”低的中斷;若兩個中斷的“搶占優(yōu)先級”相同,當兩個中斷同時發(fā)生時,“子優(yōu)先級”高的中斷先執(zhí)行,且“子優(yōu)先級”高的中斷不能打斷“子優(yōu)先級”低的中斷。,4,知識連接,2.STM32F1的外部中斷/事件控制器,STM32F1的外部中斷/事件控制器(ExternalInterrupt/EventController,EXTI)包含20個可用于產(chǎn)生中斷/事件請求的邊沿檢測器。STM32F1的每個GPIO引腳都可以作為外部中斷的中斷輸入口,且每個外部中斷都設(shè)置了狀態(tài)位,具備獨立的觸發(fā)和屏蔽設(shè)置。這20個外部中斷或事件分別是:EXTI線015:對應外部IO口的輸入中斷。EXTI線16:連接到PVD輸出。EXTI線17:連接到RTC鬧鐘事件。EXTI線18:連接到USB喚醒事件。EXTI線19:連接到以太網(wǎng)喚醒事件(只適用于互聯(lián)型產(chǎn)品)。,4,知識連接,3.STM32F1的高級控制和通用定時器,STM32F1的高級控制和通用定時器相對基本定時器來說,增加了外部通道引腳,支持輸入捕獲、輸出比較等功能,部分定時器還支持增量(正交)編碼器和霍爾傳感器電路接口。高級控制定時器相比通用定時器,又增加了可編程死區(qū)互補輸出、重復計數(shù)器和剎車(斷路)等工業(yè)電機控制的高級功能。,根據(jù)本任務的要求,LED顯示呼吸燈效果需要使用PWM信號作為控制信號。只有高級控制定時器或者通用定時器才具備比較輸出通道,因此我們可選取通用定時器TIM3作為PWM信號輸出的定時器。,4,知識連接,通用定時器比基本定時器增加了外部通道和其他功能,因此其功能框圖更加復雜,如圖2-38和圖2-39所示。,4,知識連接,由這兩張圖可知,通用定時器由六部分構(gòu)成,分別是:時鐘源、控制器模塊、時基單元、,4,輸入捕獲模塊、捕獲/比較寄存器組輸出比較模塊。,知識連接,3.PWM介紹,脈沖寬度調(diào)制(PulseWidthModulation,PWM)簡稱脈寬調(diào)制,它是一種利用微處理器的數(shù)字輸出對模擬電路進行控制的技術(shù),其被廣泛應用于測量、通信、功率控制與變換等領(lǐng)域。,脈沖寬度調(diào)制可對模擬信號電平進行數(shù)字編碼。通過使用高分辨率計數(shù)器來調(diào)制方波的占空比,可對一個具體模擬信號的電平進行編碼。PWM信號是數(shù)字信號,因為在給定的任何時刻,滿幅值的直流供電要么完全有(ON),要么完全無(OFF)。電壓或電流源是以一種通(ON)或斷(OFF)的重復脈沖序列被加到模擬負載上去的。通的時候即是直流供電被加到負載上的時候,斷的時候即是供電被斷開的時候。只要帶寬足夠,任何模擬值都可以使用PWM進行編碼。,4,知識連接,PWM采用調(diào)整脈沖占空比的方式達到調(diào)整電壓與電流的效果。如:在1ms內(nèi),高電平占0.3ms,低電平占0.7ms。則LED燈通電0.3ms,斷電0.7ms,這樣的脈沖占空比為30%。STM32微控制器的定時器可輸出兩種模式的PWM信號:PWM1和PWM2,分別如圖2-40和圖2-41所示。,PWM信號的生成樣式與計數(shù)器寄存器(TIMx_CNT)、自動重載寄存器(TIMx_ARR)以及捕獲/比較寄存器(TIMx_CCRy)有關(guān)。,4,任務實施,建立工程存放的文件夾,新建STM32CubeMX工程,選擇MCU型號,配置調(diào)試端口,配置MCU時鐘樹,配置外部中斷按鍵GPIO功能,配置定時器TIM4輸出PWM信號,保存STM32CubeMX工程,1.建立STM32CubeMX工程并生成初始C代碼,配置按鍵NVIC,生成初始C代碼工程,4,01,編寫按鍵外部中斷回調(diào)函數(shù),02,定義相關(guān)變量,任務實施,2.完善代碼,03,使能TIM4輸出PWM信號,04,編寫主循環(huán)程序,4,5,串行通信控制LED燈應用開發(fā),5,任務要求,本任務要求設(shè)計一個LED流水燈系統(tǒng),該系統(tǒng)與上位機之間通過串行通信接口相連。上位機可發(fā)送命令對LED流水燈系統(tǒng)進行控制,具體要求如下:系統(tǒng)中有8個LED燈,分別是LED1LED8。系統(tǒng)上電時,8個LED燈默認為熄滅狀態(tài)。系統(tǒng)運行時,8個LED燈依次點亮。LED流水燈的工作模式有兩種:模式一:8個LED燈依次點亮,每個LED燈點亮1秒后熄滅,然后切換為另一個,點亮順序為LED0、LED1、LED7,并以此循環(huán)往復;模式二:8個LED燈依次點亮,每個LED燈點亮1秒后熄滅,然后切換為另一個,點亮順序為LED7、LED6、LED0,并以此循環(huán)往復。上位機以串行通信的方式發(fā)送命令至該系統(tǒng)進行LED流水燈工作模式的切換,命令“mode_1#”和“mode_2#”分別對應模式一和模式二的控制,命令“stop#”控制LED流水燈停止運行并全滅。,知識連接,1.通用同步異步收發(fā)器概述,通用同步異步收發(fā)器的英文全稱是UniversalSynchronousAsynchronousReceiverandTransmitter,簡稱USART。STM32F1系列微控制器有多個收發(fā)器外設(shè)(俗稱“串口”)可用于串行通信,包括3個USART和2個UART(通用異步收發(fā)器,UniversalAsynchronousReceiverandTransmitter),它們分別是:USART1、USART2、USART3、UART4、UART5。UART與USART相比,裁剪了同步通信的功能,只有異步通信功能。同步通信與異步通信的區(qū)別在于通信中是否需要發(fā)送器輸出同步時鐘信號USART_CK,實際應用中一般使用異步通信。USART是MCU的重要外設(shè),在程序設(shè)計的調(diào)試階段可發(fā)揮重要作用。如:將開發(fā)板與PC機通過串行通信接口相連后,可將調(diào)試信息“打印”到串口調(diào)試助手等工具中,開發(fā)者可借助這些信息了解程序運行情況。,5,知識連接,STM32F1的各個收發(fā)器外設(shè)的工作時鐘來源于不同的APB總線:USART1掛載在APB2總線上,最大頻率為72MHz;其他4個收發(fā)器則掛載在APB1總線上,最大頻率為36MHz。表2-8展示了STM32F103VET6芯片USART/UART的外部引腳分布:,5,知識連接,2.USART的中斷控制,STM32F1的USART支持多種中斷事件,與發(fā)送有關(guān)的中斷有:發(fā)送完成、清除以發(fā)送(CTS標志)和發(fā)送數(shù)據(jù)寄存器為空;與接收有關(guān)的中斷有:接收數(shù)據(jù)寄存器不為空、檢測到空閑線路、檢測到上溢錯誤、奇偶校驗錯誤、檢測到LIN斷路、多緩沖通信中的噪聲標志、上溢錯誤和幀錯誤。,5,任務實施,建立工程存放的文件夾,新建STM32CubeMX工程,選擇MCU型號,配置調(diào)試端口,配置MCU時鐘樹,配置LED燈的GPIO功能,配置USART外設(shè)的工作參數(shù),保存STM32CubeMX工程,1.建立STM32CubeMX工程并生成初始C代碼,生成初始C代碼工程,5,01,將USART發(fā)送函數(shù)重定向到print()函數(shù),02,定義USART收發(fā)所需的變量,任務實施,2.完善代碼,03,編寫USART接收中斷服務函數(shù),04,編寫LED流水燈顯示程序,05,編寫main()函數(shù),5,6,電池電量監(jiān)測應用開發(fā),6,任務要求,本任務要求設(shè)計一個可對電池電壓進行監(jiān)測的應用程序,電路圖如圖2-48所示。,在圖2-48中,供電電池的電壓為12.6V,通過“PIN”端接入。電池電壓經(jīng)過分壓后,通過“VM_ADC”與微控制器的PA1引腳相連,作為ADC采集輸入。要求每隔1秒鐘對電池電壓進行采集,采集到的電壓值通過串行通信的方式發(fā)送至上位機顯示。電壓顯示樣例:3.25V,數(shù)值精確到小數(shù)點后兩位數(shù)。,任務要求,本任務要求搭建基于STM32CubeMX工具和HAL庫的STM32微控制器的開發(fā)環(huán)境,生成可在MDK-ARM集成開發(fā)環(huán)境下運行的工程。正確地配置、編譯工程后,將其下載至開發(fā)板中運行。,6,知識連接,1.ADC簡介,ADC(Analog-to-DigitalConverter,模數(shù)轉(zhuǎn)換器)是一種可將連續(xù)變化的模擬信號轉(zhuǎn)換為離散的數(shù)字信號的器件,其可將溫度、壓力、聲音或者圖像等轉(zhuǎn)換成更易存儲、處理和發(fā)射的數(shù)字信號。STM32F103VET6微控制器有3個ADC,可工作在獨立、雙重或三重模式下,以適應多種不同的應用需求。每個ADC都具有18個復用通道,可測量16個外部信號源、2個內(nèi)部信號源,轉(zhuǎn)換精度可配置為12bit、10bit、8bit或6bit,轉(zhuǎn)換結(jié)果存儲在一個可左對齊或右對齊的16位數(shù)據(jù)寄存器中。圖2-49展示了單個ADC的結(jié)構(gòu)框圖。,6,知識連接,2.ADC的功能分析,(1)ADC的輸入電壓范圍,如上圖的標號處所示,ADC的輸入電壓VIN的范圍是:VREF-VINVREF+,由圖中的VREF-、VREF+、VDDA和VSSA四個外部引腳的電壓決定,6,如圖2-49的標號處所示,單個ADC的輸入通道多達18個,其中包括16個外部通道,這16個外部通道分別連接著不同的GPIO口,如表2-11所示,表中還顯示了內(nèi)部通道16、17連接的資源。,知識連接,(2)ADC的輸入通道,6,知識連接,(3)ADC的轉(zhuǎn)換順序,圖處所示,STM32F1將ADC轉(zhuǎn)換分為兩個通道:規(guī)則通道和注入通道。規(guī)則通道相當于正常運行的程序,注入通道相當于中斷。正如中斷可以打斷正常運行的程序,注入通道的ADC轉(zhuǎn)換可以打斷規(guī)則通道的轉(zhuǎn)換,只有等注入通道轉(zhuǎn)換完成后,規(guī)則通道的轉(zhuǎn)換才能繼續(xù)運行。規(guī)則通道的轉(zhuǎn)換順序由規(guī)則序列寄存器SQR3、SQR2和SQR1控制,注入通道的轉(zhuǎn)換順序由注入序列寄存器JSQR控制。,(4)ADC的輸入時鐘與采樣周期,圖處所示,STM32F1的ADC輸入時鐘ADCCLK由PCLK2經(jīng)過ADC預分頻器產(chǎn)生。根據(jù)數(shù)據(jù)手冊顯示,當VDDA范圍為2.4V至3.6V時,ADCCLK最大值為14MHz。分頻系數(shù)由ADC通用控制寄存器ADC_CCR中的“ADCPRE1:0”位段設(shè)置,可設(shè)置的值有2、4、6和8。當PCLK2為72MHz時,若設(shè)置ADC預分頻器的分頻系數(shù)為6,則ADCCLK的時鐘頻率為12

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論