版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、學(xué)號(hào)2014-2015學(xué)年 第二學(xué)期1208020121嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告題目:基于stm32的簡易數(shù)字電壓表專業(yè):網(wǎng)絡(luò)工程班級(jí):網(wǎng)絡(luò)工程12(1)姓名:指導(dǎo)教師:成績:計(jì)算機(jī)學(xué)院 2015年 5 月 22日目錄1. 設(shè)計(jì)內(nèi)容及要求11.1. 設(shè)計(jì)內(nèi)容11.2. 設(shè)計(jì)要求12. 概要設(shè)計(jì)22.1. 硬件電路22.2. 實(shí)驗(yàn)板中的連線圖22.3. stm32介紹32.4. 主要函數(shù)說明83. 設(shè)計(jì)過程或程序代碼103.1. 設(shè)計(jì)過程103.2. 程序代碼124. 設(shè)計(jì)結(jié)果與分析16參考文獻(xiàn)17計(jì)算機(jī)學(xué)院 嵌入式系統(tǒng)課程設(shè)計(jì)報(bào)告1. 設(shè)計(jì)內(nèi)容及要求1.1. 設(shè)計(jì)內(nèi)容 本文以arm系列的stm3
2、2芯片為核心設(shè)計(jì)了一個(gè)簡易數(shù)字電壓表。簡易數(shù)字電壓表采用模數(shù)轉(zhuǎn)換思想來實(shí)現(xiàn),通過硬件電路和軟件程序相結(jié)合,可輸出自定義測量電壓,通過調(diào)節(jié)模數(shù)轉(zhuǎn)換電位器使在一定范圍內(nèi)可任意改變。輸出的電壓格式和精度的改變通過軟件控制,輸出電壓的大小的改變通過硬件實(shí)現(xiàn)。介紹了的生成原理、硬件電路和軟件部分的設(shè)計(jì)原理。該簡易數(shù)字電壓表具有體積小、價(jià)格低、性能穩(wěn)定、功能齊全的優(yōu)點(diǎn)。1、將一模擬電壓信號(hào)輸入到a/d轉(zhuǎn)換器的任一通道。2、a/d轉(zhuǎn)換器將輸入的模擬電壓值轉(zhuǎn)換成數(shù)字量。3、根據(jù)學(xué)習(xí)開發(fā)板所用a/d轉(zhuǎn)換器的類型,將轉(zhuǎn)換成的數(shù)字量通過一定的算法轉(zhuǎn)換成相應(yīng)的電壓值。4、將轉(zhuǎn)換成電壓值通過學(xué)習(xí)開發(fā)板上的lcd顯示屏進(jìn)
3、行顯示,要求顯示一位小數(shù)。1.2. 設(shè)計(jì)要求 利用stm32f103內(nèi)部a/d及2.8寸tft液晶屏,設(shè)計(jì)完成一個(gè)數(shù)字電壓表。要求:數(shù)字電壓表可測量0-5v輸入電壓,電壓值通過液晶屏顯示。工作原理及設(shè)計(jì)思路:簡易數(shù)字電壓表的設(shè)計(jì)由a/d轉(zhuǎn)換.數(shù)據(jù)處理及顯示控制等組成。利用stm32f103內(nèi)部a/d轉(zhuǎn)換器將模擬電壓轉(zhuǎn)換成數(shù)字量,經(jīng)stm32f103計(jì)算將數(shù)字量轉(zhuǎn)換成對(duì)應(yīng)的電壓值,并通過液晶屏輸出。 數(shù)字電壓表的基本組成部分是a/d變換器+電子計(jì)數(shù)器。通常,被測直流電壓經(jīng)a/d轉(zhuǎn)換器變?yōu)榕c之成正比的閘門時(shí)間,在此閘門時(shí)間內(nèi)計(jì)數(shù),用數(shù)字顯示被測電壓值??梢奱/d變換器是dvm的核心部件。本課設(shè)上采
4、用的是單片a/d轉(zhuǎn)換器(含模擬電路與數(shù)字電路)集成在一片芯片上,配以lcd或led數(shù)字器件后能顯示a/d轉(zhuǎn)換結(jié)果的集成電路。它們均屬于大規(guī)模的集成電路,能以最簡的方式構(gòu)成dvm。在此采用icl7106a/d轉(zhuǎn)換器。但由于stm32f103內(nèi)部集成了a/d轉(zhuǎn)換器,所以不需要外圍的a/d轉(zhuǎn)換器,這就體現(xiàn)了stm32得集成特性。2. 概要設(shè)計(jì)2.1. 硬件電路設(shè)計(jì)的核心stm32嵌入式處理器的硬件電路如圖1所示圖1 stm32嵌入式處理器的硬件電路2.2. 實(shí)驗(yàn)板中的連線圖連線圖如圖2所示。圖2 硬件連接圖。2.3. stm32介紹 stm32f103xx增強(qiáng)型系列使用高性能的arm cortex-
5、m3 32位的risc內(nèi)核,工作頻率為72mhz,內(nèi)置高速存儲(chǔ)器(高達(dá)128k字節(jié)的閃存和20k字節(jié)的sram),豐富的增強(qiáng)i/o端口和聯(lián)接到兩條apb總線的外設(shè)。所有型號(hào)的器件都包含2個(gè)12位的adc、3個(gè)通用16位定時(shí)器和一個(gè)pwm定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)i2c和spi、3個(gè)usart、一個(gè)usb和一個(gè)can。stm32f103xx增強(qiáng)型系列工作于-40c至+105c的溫度范圍,供電電壓2.0v至3.6v,一系列的省電模式保證低功耗應(yīng)用的要求。 完整的stm32f103xx增強(qiáng)型系列產(chǎn)品包括從36腳至100腳的五種不同封裝形式;根據(jù)不同的封裝形式,器件中的外設(shè)配置不盡相
6、同。下面給出了該系列產(chǎn)品中所有外設(shè)的基本介紹。這些豐富的外設(shè)配置,使得stm32f103xx增強(qiáng)型微控制器適合于多種應(yīng)用場合: 電機(jī)驅(qū)動(dòng)和應(yīng)用控制 醫(yī)療和手持設(shè)備 pc外設(shè)和gps平臺(tái) 工業(yè)應(yīng)用:可編程控制器、變頻器、打印機(jī)和掃描儀 警報(bào)系統(tǒng),視頻對(duì)講,和暖氣通風(fēng)空調(diào)系統(tǒng) arm的cortex-m3核心并內(nèi)嵌閃存和sram arm的cortex-m3處理器是最新一代的嵌入式arm處理器,它為實(shí)現(xiàn)mcu的需要提供了低成本的平 臺(tái)、縮減的管腳數(shù)目、降低的系統(tǒng)功耗,同時(shí)提供卓越的計(jì)算性能和先進(jìn)的中斷系統(tǒng)響應(yīng)。 arm的cortex-m3是32位的risc處理器,提供額外的代碼效率,在通常8和16位系
7、統(tǒng)的存儲(chǔ)空間上得 到了arm核心的高性能。 stm32f103xx增強(qiáng)型系列擁有內(nèi)置的arm核心,因此它與所有的arm工具和軟件兼容。 圖一是該系列產(chǎn)品的功能框圖。 內(nèi)置閃存存儲(chǔ)器 高達(dá)128k字節(jié)的內(nèi)置閃存存儲(chǔ)器,用于存放程序和數(shù)據(jù)。 內(nèi)置sram 多達(dá)20k字節(jié)的內(nèi)置sram,cpu能以0等待周期訪問(讀/寫)。 嵌套的向量式中斷控制器(nvic) stm32f103xx增強(qiáng)型內(nèi)置嵌套的向量式中斷控制器,能夠處理多達(dá)43個(gè)可屏蔽中斷通道(不包括16個(gè) cortex-m3的中斷線)和16個(gè)優(yōu)先級(jí)。 緊耦合的nvic能夠達(dá)到低延遲的中斷響應(yīng)處理 中斷向量入口地址直接進(jìn)入核心 緊耦合的nvic接
8、口 允許中斷的早期處理 處理 晚到的 較高優(yōu)先級(jí)中斷 支持中斷尾部鏈接功能 自動(dòng)保存處理器狀態(tài) 中斷返回時(shí)自動(dòng)恢復(fù),無需額外指令開銷 該模塊以最小的中斷延遲提供靈活的中斷管理功能。 外部中斷/事件控制器(exti) 外部中斷/事件控制器包含19個(gè)邊沿檢測器,用于產(chǎn)生中斷/事件請(qǐng)求。 每個(gè)中斷線都可以獨(dú)立地配置它的觸發(fā)事件(上升沿或下降沿或雙邊沿),能夠單獨(dú)地被屏蔽;有一 個(gè)掛起寄存器維持所有中斷請(qǐng)求的狀態(tài)。exti可以檢測到脈沖寬度小于內(nèi)部apb2的時(shí)鐘周期。多 達(dá)80個(gè)通用i/o口連接到16個(gè)外部中斷線。 時(shí)鐘和啟動(dòng) 系統(tǒng)時(shí)鐘的選擇是在啟動(dòng)時(shí)進(jìn)行,復(fù)位時(shí)內(nèi)部8mhz的rc振蕩器被選為默認(rèn)的c
9、pu時(shí)鐘,隨后可以 選擇外部的、具失效監(jiān)控的416mhz時(shí)鐘;當(dāng)外部時(shí)鐘失效時(shí),它將被隔離,同時(shí)會(huì)產(chǎn)生相應(yīng)的中 斷。同樣,在需要時(shí)可以采取對(duì)pll時(shí)鐘完全的中斷管理(如當(dāng)一個(gè)外接的振蕩器失效時(shí))。 具有多個(gè)預(yù)分頻器用于配置ahb的頻率、高速apb(apb2)和低速apb(apb1)區(qū)域。ahb和高速apb 的最高頻率是72mhz,低速apb的最高頻率為36mhz。 自舉模式 在啟動(dòng)時(shí),自舉管腳被用于選擇三種自舉模式中的一種: 從用戶閃存自舉 從系統(tǒng)存儲(chǔ)器自舉 從sram自舉 自舉加載器存放于系統(tǒng)存儲(chǔ)器中,可以通過usart對(duì)閃存重新編程。 供電方案 vdd = 2.0至3.6v:vdd管腳提供
10、i/o管腳和內(nèi)部調(diào)壓器的供電。 vssa,vdda = 2.0至3.6v:為adc、復(fù)位模塊、rc振蕩器和pll的模擬部分提供供電。使用 adc時(shí),vdd不得小于2.4v。 vbat = 1.8至3.6v:當(dāng)(通過電源開關(guān))關(guān)閉vdd時(shí),為rtc、外部32khz振蕩器和后備寄存器供電。 供電監(jiān)控器 本產(chǎn)品內(nèi)部集成了上電復(fù)位(por)/掉電復(fù)位(pdr)電路,該電路始終處于工作狀態(tài),保證系統(tǒng)在供 電超過2v時(shí)工作;當(dāng)vdd低于設(shè)定的閥值(vpor/pdr)時(shí),置器件于復(fù)位狀態(tài),而不必使用外部復(fù) 位電路。 器件中還有一個(gè)可編程電壓監(jiān)測器(pvd),它監(jiān)視vdd供電并與閥值vpvd比較,當(dāng)vdd低于
11、或高 于閥值vpvd時(shí)將產(chǎn)生中斷,中斷處理程序可以發(fā)出警告信息或?qū)⑽⒖刂破鬓D(zhuǎn)入安全模式。需要通 過程序開啟pvd。電壓調(diào)壓器 調(diào)壓器有三個(gè)操作模式:主模式(mr)、低功耗模式(lpr)和關(guān)斷模式 主模式(mr)用于正常的運(yùn)行操作 低功耗模式(lpr)用于cpu的停機(jī)模式 關(guān)斷模式用于cpu的待機(jī)模式:調(diào)壓器的輸出為高阻狀態(tài),內(nèi)核電路的供電切斷,調(diào)壓器處于 零消耗狀態(tài)(但寄存器和sram的內(nèi)容將丟失) 該調(diào)壓器在復(fù)位后始終處于工作狀態(tài),在待機(jī)模式下關(guān)閉處于高阻輸出。 低功耗模式 stm32f103xx增強(qiáng)型支持三種低功耗模式,可以在要求低功耗、短啟動(dòng)時(shí)間和多種喚醒事件之間達(dá) 到最佳的平衡。 睡眠
12、模式 在睡眠模式,只有cpu停止,所有外設(shè)處于工作狀態(tài)并可在發(fā)生中斷/事件時(shí)喚醒cpu。 停機(jī)模式 在保持sram和寄存器內(nèi)容不丟失的情況下,停機(jī)模式可以達(dá)到最低的電能消耗。在停機(jī)模式 下,停止所有內(nèi)部1.8v部分的供電,pll、hsi和hse的rc振蕩器被關(guān)閉,調(diào)壓器可以被置于 普通模式或低功耗模式。 可以通過任一配置成exti的信號(hào)把微控制器從停機(jī)模式中喚醒,exti信號(hào)可以是16個(gè)外部i/o 口之一、pvd的輸出、rtc鬧鐘或usb的喚醒信號(hào)。 待機(jī)模式 在待機(jī)模式下可以達(dá)到最低的電能消耗。內(nèi)部的電壓調(diào)壓器被關(guān)閉,因此所有內(nèi)部1.8v部分的 供電被切斷;pll、hsi和hse的rc振蕩器
13、也被關(guān)閉;進(jìn)入待機(jī)模式后,sram和寄存器的 內(nèi)容將消失,但后備寄存器的內(nèi)容仍然保留,待機(jī)電路仍工作。 從待機(jī)模式退出的條件是:nrst上的外部復(fù)位信號(hào)、iwdg復(fù)位、wkup管腳上的一個(gè)上升 邊沿或rtc的鬧鐘到時(shí)。 注:在進(jìn)入停機(jī)或待機(jī)模式時(shí), rtc 、 iwdg 和對(duì)應(yīng)的時(shí)鐘不會(huì)被停止。 dma 靈活的7路通用dma可以管理存儲(chǔ)器到存儲(chǔ)器、設(shè)備到存儲(chǔ)器和存儲(chǔ)器到設(shè)備的數(shù)據(jù)傳輸;dma控 制器支持環(huán)形緩沖區(qū)的管理,避免了控制器傳輸?shù)竭_(dá)緩沖區(qū)結(jié)尾時(shí)所產(chǎn)生的中斷。 每個(gè)通道都有專門的硬件dma請(qǐng)求邏輯,同時(shí)可以由軟件觸發(fā)每個(gè)通道;傳輸?shù)拈L度、傳輸?shù)脑吹?址和目標(biāo)地址都可以通過軟件單獨(dú)設(shè)置。
14、dma可以用于主要的外設(shè):spi、i2c、usart、通用和高級(jí)定時(shí)器timx和adc。 rtc(實(shí)時(shí)時(shí)鐘)和后備寄存器 rtc和后備寄存器通過一個(gè)開關(guān)供電,在vdd有效時(shí)該開關(guān)選擇vdd供電,否則由vbat管腳供 電。后備寄存器(10個(gè)16位的寄存器)可以用于在vdd消失時(shí)保存數(shù)據(jù)。 實(shí)時(shí)時(shí)鐘具有一組連續(xù)運(yùn)行的計(jì)數(shù)器,可以通過適當(dāng)?shù)能浖峁┤諝v時(shí)鐘功能,還具有鬧鐘中斷和 階段性中斷功能。rtc的驅(qū)動(dòng)時(shí)鐘可以是一個(gè)使用外部晶體的32.768khz的振蕩器、內(nèi)部低功耗rc 振蕩器或高速的外部時(shí)鐘經(jīng)128分頻。內(nèi)部低功耗rc振蕩器的典型頻率為32khz。為補(bǔ)償天然晶體 的偏差,rtc的校準(zhǔn)是通過輸
15、出一個(gè)512hz的信號(hào)進(jìn)行。rtc具有一個(gè)32位的可編程計(jì)數(shù)器,使用 比較寄存器可以產(chǎn)生鬧鐘信號(hào)。有一個(gè)20位的預(yù)分頻器用于時(shí)基時(shí)鐘,默認(rèn)情況下時(shí)鐘為32.768khz 時(shí)它將產(chǎn)生一個(gè)1秒長的時(shí)間基準(zhǔn)。 獨(dú)立的看門狗 獨(dú)立的看門狗是基于一個(gè)12位的遞減計(jì)數(shù)器和一個(gè)8位的預(yù)分頻器,它由一個(gè)獨(dú)立的32khz的內(nèi)部 rc振蕩器提供時(shí)鐘,應(yīng)為這個(gè)rc振蕩器獨(dú)立于主時(shí)鐘,所以它可運(yùn)行于停機(jī)和待機(jī)模式。它可以 被當(dāng)成看門狗用于在發(fā)生問題時(shí)復(fù)位整個(gè)系統(tǒng),或作為一個(gè)自由定時(shí)器為應(yīng)用程序提供超時(shí)管理。 通過選擇字節(jié)可以配置成是軟件看門狗或硬件看門狗。在調(diào)試模式,計(jì)數(shù)器可以被凍結(jié)。 窗口看門狗 窗口看門狗內(nèi)有一個(gè)
16、7位的遞減計(jì)數(shù)器,并可以設(shè)置成自由運(yùn)行。它可以被當(dāng)成看門狗用于在發(fā)生 問題時(shí)復(fù)位整個(gè)系統(tǒng)。它由主時(shí)鐘驅(qū)動(dòng),具有早期預(yù)警中斷功能;在調(diào)試模式,計(jì)數(shù)器可以被凍 結(jié)。 系統(tǒng)時(shí)基定時(shí)器 這個(gè)定時(shí)器是專用于操作系統(tǒng),也可當(dāng)成一個(gè)標(biāo)準(zhǔn)的遞減計(jì)數(shù)器。它具有下述特性: 24位的遞減計(jì)數(shù)器 重加載功能 可屏蔽的計(jì)數(shù)器為0中斷 可編程時(shí)鐘源 通用定時(shí)器(timx) 產(chǎn)品中內(nèi)置了多達(dá)3個(gè)同步的標(biāo)準(zhǔn)定時(shí)器。每個(gè)定時(shí)器都有一個(gè)16位的自 動(dòng)加載遞加/遞減計(jì)數(shù)器、一個(gè)16位的預(yù)分頻器和4個(gè)獨(dú)立的通道,每個(gè)通道都可用于輸入捕獲、輸 出比較、pwm和單脈沖模式輸出,在最大的封裝配置中可提供最多12個(gè)輸入捕獲、輸出比較或 pw
17、m通道。它們還能通過定時(shí)器鏈接功能與高級(jí)控制定時(shí)器共同工作,提供同步或事件鏈接功能。 在調(diào)試模式下,計(jì)數(shù)器可以被凍結(jié)。 任一標(biāo)準(zhǔn)定時(shí)器都能用于產(chǎn)生pwm輸出。每個(gè)定時(shí)器都有獨(dú)立的dma請(qǐng)求機(jī)制。 高級(jí)控制定時(shí)器(tim1) 高級(jí)控制定時(shí)器(tim1)可以被看成是一個(gè)分配到6個(gè)通道的三相pwm發(fā)生器,它還可以被當(dāng)成一個(gè) 完整的通用定時(shí)器。四個(gè)獨(dú)立的通道可以用于: 輸入捕獲 輸出比較 產(chǎn)生pwm(邊緣或中心對(duì)齊模式) 單脈沖輸出 反相pwm輸出,具程序可控的死區(qū)插入功能 配置為16位標(biāo)準(zhǔn)定時(shí)器時(shí),它與timx定時(shí)器具有相同的功能。配置為16位pwm發(fā)生器時(shí),它具有 全調(diào)制能力(0100%)。 在調(diào)
18、試模式下,計(jì)數(shù)器可以被凍結(jié)。 很多功能都與標(biāo)準(zhǔn)的tim定時(shí)器相同,內(nèi)部結(jié)構(gòu)也相同,因此高級(jí)控制定時(shí)器可以通過定時(shí)器鏈接 功能與tim定時(shí)器協(xié)同操作,提供同步或事件鏈接功能。 i 2c總線 多達(dá)2個(gè)i2c總線接口,能夠工作于多主和從模式,支持標(biāo)準(zhǔn)和快速模式。 它們支持雙從地址尋址(只有7位)和主模式下的7/10位尋址。內(nèi)置了硬件crc發(fā)生器/校驗(yàn)器。 它們可以使用dma操作并支持sm總線2.0版/pm總線 通用同步/異步接受發(fā)送器(usart) 其中一個(gè)usart接口通信速率可達(dá)4.5兆位/秒,其他usart接口通信速率可達(dá)2.25兆位/秒。接口具 有硬件的cts和rts信號(hào)管理、支持irda的
19、 sir endec、與iso7816兼容并具有l(wèi)in主/從功能。 usart接口可以使用dma操作。 串行外設(shè)接口(spi) 多達(dá)2個(gè)spi接口,在從或主模式下,全雙工和半雙工的通信速率可達(dá)18兆位/秒。3位的預(yù)分頻器可 產(chǎn)生8種主模式頻率,可配置成每幀8位或16位。硬件的crc產(chǎn)生/校驗(yàn)支持基本的sd卡和mmc模 式。 2個(gè)spi接口都可以使用dma操作。 控制器區(qū)域網(wǎng)絡(luò)(can) can接口兼容規(guī)范2.0a和2.0b (主動(dòng)),位速率達(dá)1兆位/秒。它可以接收和發(fā)送11位標(biāo)識(shí)符的標(biāo)準(zhǔn) 幀,也接收和發(fā)送29位標(biāo)識(shí)符的擴(kuò)展幀。具有2個(gè)接收fifos,3級(jí)14個(gè)可調(diào)節(jié)的濾波器。內(nèi)部sram 緩沖
20、最多可處理32個(gè)報(bào)文對(duì)象。 通用串行總線(usb) stm32f103xx增強(qiáng)型系列產(chǎn)品內(nèi)嵌一個(gè)usb設(shè)備,遵循usb全速標(biāo)準(zhǔn);usb接口實(shí)現(xiàn)全速(12兆位/ 秒)的設(shè)備功能;具有可軟件配置的端點(diǎn)和待機(jī)/恢復(fù)功能。專用的48mhz時(shí)鐘由內(nèi)部主pll直接產(chǎn) 生。 通用輸入輸出接口(gpio) 每個(gè)gpio管腳都可以由軟件配置成輸出(推拉或開路)、輸入(帶或不帶上拉或下拉)或其它的外設(shè)功 能;多數(shù)gpio管腳都與數(shù)字或模擬的外設(shè)功能管腳共用。所有的gpio管腳都有大電流通過能力。 在需要的情況下,i/o管腳的外設(shè)功能可以通過一個(gè)特定的操作鎖定,以避免意外的寫入i/o寄存器。 在apb2上的i/o腳
21、可達(dá)18mhz的翻轉(zhuǎn)速度。adc(模擬/數(shù)字轉(zhuǎn)換器) stm32f103xx增強(qiáng)型產(chǎn)品內(nèi)嵌2個(gè)12位的模擬/數(shù)字轉(zhuǎn)換器(adc),每個(gè)adc有多達(dá)16個(gè)外部通道, 可以執(zhí)行單次或掃描轉(zhuǎn)換模式;在掃描模式下,轉(zhuǎn)換在一組選定的模擬輸入上自動(dòng)進(jìn)行。 adc接口上額外的邏輯功能允許: 同時(shí)采樣和保持 交叉采樣和保持 單次采樣 adc可以使用dma操作。 模擬看門狗功能允許非常精準(zhǔn)地監(jiān)視一路、多路或所有選中的被轉(zhuǎn)換電壓,當(dāng)被監(jiān)視的信號(hào)超出預(yù) 置的閥值時(shí),將產(chǎn)生中斷。 由標(biāo)準(zhǔn)定時(shí)器(timx)和高級(jí)控制定時(shí)器(tim1)產(chǎn)生的事件,可以分別內(nèi)部級(jí)聯(lián)到adc的開始觸發(fā)、 外部觸發(fā)和dma觸發(fā),允許應(yīng)用程序同
22、步ad轉(zhuǎn)換和時(shí)鐘的操作。溫度傳感器 溫度傳感器產(chǎn)生一個(gè)隨溫度線性變化的電壓,轉(zhuǎn)換范圍在2v vdda = 900000) /間隔時(shí)間顯示轉(zhuǎn)換結(jié)果 ticks = 0; clock1s = 1; if (clock1s) clock1s = 0; usart_out(usart1,the current ad value = %d rn, adc_convertedvalue); /串口顯示字符段 /delay(0xafffff); precent = (adc_convertedvalue*100/4096);/ 算出百分比,2的12次冪為0xfff voltage = precent*33;
23、 / voltage為實(shí)際電壓值的1000倍. c43=(voltage/1000+0) ;/ 取千位數(shù)的整數(shù)部分 c45=(voltage%1000)/100+0) ; /對(duì)千位數(shù)取余數(shù)后再取其百位的整數(shù)部分 c46=(voltage%100)/10)+0) ;/對(duì)百位數(shù)取余數(shù)后再取其十位的整數(shù)部分 c47=(voltage%10)+0) ;/對(duì)百位數(shù)取余數(shù)后再取其個(gè)位的整數(shù)部分lcd_putstr_16x24_center(0, c3, c4len,black, bkcolor);lcd_putstr_16x24_center(line1, c, len,black, bkcolor);
24、lcd_putstr_16x24_center(line2, c3, c3len,black, bkcolor); lcd_putstr_16x24_center(line3, c4, c4len,black, bkcolor); lcd_putstr_16x24_center(line4, c2, c2len,black,bkcolor);usart_out(usart1,the v value = %d.%d%d%d vrn, c43=(voltage/1000),c45=(voltage%1000)/100),c46=(voltage%100)/10,c47=(voltage%10);/
25、顯示實(shí)際電壓值 lcd_test(); 2、adc配置: adc_configuration函數(shù)用于配置adc1的通道11,因?yàn)橹挥昧薬dc1所以采用了adc獨(dú)立模式,設(shè)置通道11進(jìn)入規(guī)則組,規(guī)則組里的通道只有1個(gè),就是通道1,轉(zhuǎn)換用了掃描方式,軟件觸發(fā),轉(zhuǎn)換結(jié)果采用dma方式傳遞到2字節(jié)長度的緩存區(qū)里(adc_convertedvalue),默認(rèn)的adcclk為36mhz,采樣周期是55.5+12.5時(shí)鐘周期,相當(dāng)于采樣時(shí)間是間隔(68/36)us。void adc_configuration(void)adc_inittypedef adc_initstructure;gpio_initt
26、ypedef gpio_initstructure;dma_inittypedef dma_initstructure; /設(shè)置ad模擬輸入端口為輸入 1路ad 規(guī)則通道 gpio_initstructure.gpio_pin = gpio_pin_1; gpio_initstructure.gpio_mode = gpio_mode_ain; gpio_init(gpioc, &gpio_initstructure);/* enable dma clock */ rcc_ahbperiphclockcmd(rcc_ahbperiph_dma1, enable); /* enable adc1
27、 and gpioc clock */ rcc_apb2periphclockcmd(rcc_apb2periph_adc1 , enable); /* dma channel1 configuration -*/使能dmadma_deinit(dma1_channel1);dma_initstructure.dma_peripheralbaseaddr = adc1_dr_address; /dma通道1的地址 dma_initstructure.dma_memorybaseaddr = (u32)&adc_convertedvalue; /dma傳送地址dma_initstructure.
28、dma_dir = dma_dir_peripheralsrc; /傳送方向dma_initstructure.dma_buffersize = 1; /傳送內(nèi)存大小,100個(gè)16位dma_initstructure.dma_peripheralinc = dma_peripheralinc_disable; dma_initstructure.dma_memoryinc = dma_memoryinc_enable; /傳送內(nèi)存地址遞增dma_initstructure.dma_peripheraldatasize = dma_peripheraldatasize_halfword;/adc
29、1轉(zhuǎn)換的數(shù)據(jù)是16位dma_initstructure.dma_memorydatasize = dma_memorydatasize_halfword;/傳送的目的地址是16位寬度dma_initstructure.dma_mode = dma_mode_circular;/循環(huán)dma_initstructure.dma_priority = dma_priority_high;dma_initstructure.dma_m2m = dma_m2m_disable;dma_init(dma1_channel1, &dma_initstructure); /* 允許dma1通道1傳輸結(jié)束中斷
30、*/dma_itconfig(dma1_channel1,dma_it_tc, enable);/使能dma通道1dma_cmd(dma1_channel1, enable); /adc配置adc_initstructure.adc_mode = adc_mode_independent;/adc1工作在獨(dú)立模式adc_initstructure.adc_scanconvmode = enable;/模數(shù)轉(zhuǎn)換工作在掃描模式(多通道)還是單次(單通道)模式adc_initstructure.adc_continuousconvmode = enable;/模數(shù)轉(zhuǎn)換工作在掃描模式(多通道)還是單次
31、(單通道)模式adc_initstructure.adc_externaltrigconv = adc_externaltrigconv_none;/轉(zhuǎn)換由軟件而不是外部觸發(fā)啟動(dòng)adc_initstructure.adc_dataalign = adc_dataalign_right;/adc數(shù)據(jù)右對(duì)齊adc_initstructure.adc_nbrofchannel = 1; /規(guī)定了順序進(jìn)行規(guī)則轉(zhuǎn)換的adc通道的數(shù)目。這個(gè)數(shù)目的取值范圍是1到16adc_init(adc1, &adc_initstructure);/* adc1 regular channels configuratio
32、n 規(guī)則模式通道配置*/ /adc1 規(guī)則通道配置 adc_regularchannelconfig(adc1, adc_channel_11, 1, adc_sampletime_55cycles5); /通道11采樣時(shí)間 55.5周期/使能adc1 dma adc_dmacmd(adc1, enable);/使能adc1adc_cmd(adc1, enable);/ 初始化adc1校準(zhǔn)寄存器adc_resetcalibration(adc1);/檢測adc1校準(zhǔn)寄存器初始化是否完成while(adc_getresetcalibrationstatus(adc1);/開始校準(zhǔn)adc1adc_startcalibration(adc1);/檢測是否完成校準(zhǔn)while(adc_getcalibrationstatus(adc1);/adc1轉(zhuǎn)換啟動(dòng)adc_softwarestartconvcmd(adc1, enable); 4. 設(shè)計(jì)結(jié)果與分析設(shè)計(jì)發(fā)現(xiàn):數(shù)字電壓表采用模數(shù)轉(zhuǎn)換思想來實(shí)現(xiàn),通過硬件電路和軟件程序相結(jié)合,可輸出自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)培訓(xùn)中的團(tuán)隊(duì)凝聚力培養(yǎng)與音樂游戲
- 商業(yè)思維在學(xué)生時(shí)間管理中的應(yīng)用
- 2025中國航天科工集團(tuán)第十研究院校園招聘593人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國科學(xué)院紫金山天文臺(tái)人才公開招聘6人(江蘇南京市第2期)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國石化江蘇油田分公司畢業(yè)生招聘10人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信股份限公司數(shù)字智能科技分公司社會(huì)招聘21人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國電信安全公司社會(huì)招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國核工業(yè)集團(tuán)限公司校園招聘7000人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國兵器裝備集團(tuán)限公司總部招聘5人(北京)高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中化學(xué)國際工程限公司招聘32人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 楊功旭主任運(yùn)用六經(jīng)辨證治療肩周炎的學(xué)術(shù)經(jīng)驗(yàn)及用藥規(guī)律
- 電力工程監(jiān)理實(shí)施細(xì)則
- 基于費(fèi)托合成的天然氣制合成油工藝技術(shù)綜述
- 常見抗痛風(fēng)藥物課件整理
- 2023年高考真題-地理(浙江卷)含答案
- 人員招聘與培訓(xùn)實(shí)務(wù)期末復(fù)習(xí)資料
- kv桿塔防腐施工組織設(shè)計(jì)
- 外國文學(xué)智慧樹知到答案章節(jié)測試2023年山東師范大學(xué)
- 醫(yī)院侵害未成年人案件強(qiáng)制報(bào)告制度培訓(xùn)課件
- 版管井及輕型井點(diǎn)降水施工方案
- YY/T 0506.6-2009病人、醫(yī)護(hù)人員和器械用手術(shù)單、手術(shù)衣和潔凈服第6部分:阻濕態(tài)微生物穿透試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論