




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于STM32的信號發(fā)生器設計【摘要】本系統(tǒng)以單片機STM32F107為控制核心,通過按鍵輸入所需波形參數(shù)的數(shù)字量,然后由STM32F107自帶的DA把數(shù)字量轉換成模擬量來調整波形的幅值、頻率及方波的占空比;電壓步進100mV,頻率步進50Hz,方波占空比可調;按鍵應用的是獨立按鍵,用來切換波形、時鐘,幅值,頻率以及占空比;其頻率的調解就是調節(jié)其中斷間隔的時間,幅值就是調節(jié)其數(shù)字的大?。粸榱瞬ㄐ蔚暮铣?,采用的點的個數(shù)都是128個;顯示部分采用TFT液晶,實時顯示其波形名稱,幅值、頻率以及占空比參數(shù)變化。關鍵字:信號發(fā)生器設計;三相;STM32;DA轉換目錄TOC\o"1-3"\h\u基于STM32的信號發(fā)生器設計 前言信號發(fā)生器作為一種歷史悠久的測量儀器,早在20年代電子設備剛出現(xiàn)時就產生了。隨著通信和雷達技術的發(fā)展,40年代出現(xiàn)了主要用于測試各種接收機的標準信號發(fā)生器,使得信號發(fā)生器從定性分析的測試儀器發(fā)展成定量分析的測量儀器。同時還出現(xiàn)了可用來測量脈沖電路或作脈沖調制器的脈沖信號發(fā)生器。自60年代以來信號發(fā)生器有了迅速的發(fā)展,出現(xiàn)了函數(shù)發(fā)生器。這個時期的信號發(fā)生器多采用模擬電子技術,由分立元件或模擬集成電路構成,其電路結構復雜,且僅能產生正弦波、方波、鋸齒波和三角波等幾種簡單波形。自從70年代微處理器出現(xiàn)以后,利用微處理器、模數(shù)轉換器和數(shù)模轉換器,硬件和軟件使信號發(fā)生器的功能擴大,產生比較復雜的波形。這時期的信號發(fā)生器多以軟件為主,實質是采用微處理器對D/A的程序控制,就可以得到各種簡單的波形。在80年代以后,數(shù)字技術日益成熟,信號發(fā)生器絕大部分不再使用機械驅動而采用數(shù)字電路,從一個頻率基準有數(shù)字合成電路產生可變頻率信號。90年代末出現(xiàn)了集中真正高性能的函數(shù)信號發(fā)生器,HP公司推出了型號為HP770S的信號模擬裝置系統(tǒng),它是由HP8770A任意波形數(shù)字化和HP1770A波形發(fā)生軟件組成。信號發(fā)生器技術發(fā)展至今,引導技術潮流的仍是國外的幾大儀器公司,如日本橫河、Agilent、Tektronix等。美國的FLUKE公司的FLUKE-25型函數(shù)發(fā)生器是現(xiàn)有的測試儀器中最具多樣性功能的幾種儀器之一,它和頻率計數(shù)器組合在一起,在任何條件下都可以給出很高的波形質量,能給出低失真的正弦波和三角波,還能給出過沖很小的快沿方波,其最高頻率可達到5MHz,最大輸出幅度可達到10Vpp。國內也有不少公司已經有了類似的儀器。如南京盛普儀器科技有限公司的SPF120DDS信號發(fā)生器,華高儀器生產的HG1600H型數(shù)字合成函數(shù)\任意波形信號發(fā)生器。國內信號發(fā)生器起步晚,但發(fā)展至今,已經漸漸跟上國際的腳步,能夠利用高新技術開發(fā)出達到國際水平的高性能多功能信號發(fā)生器。信號發(fā)生器在生產實踐和科技領域中有著廣泛的應用,各種波形曲線均可用三角函數(shù)方程式來表達。函數(shù)信號發(fā)生器是各種測試和實驗過程中不可缺少的工具,在通信、測量、雷達、控制教學等領域應用十分廣泛。不論是在生產、科研還是在教學上,信號發(fā)生器都是電子工程師信號仿真實驗的最佳工具。而且,信號發(fā)生器的設計方法多,設計技術也越來越先進,隨著我國經濟和科技的發(fā)展,對對應的測試儀器和測試手段也提出了更高的要求,信號發(fā)生器已成為測試儀器中至關重要的一類,因此,開發(fā)信號發(fā)生器具有重大意義。1設計任務1.1波形發(fā)生器系統(tǒng)的設計指標設計完成一個頻率振幅可調的正弦波、方波和三角波信號發(fā)生器。1.2基本要求根據ADC的值(8位)來設定輸出信號的幅值,幅值范圍0-3.3V,設定的幅值顯示在LCD上。(2)輸出信號的頻率范圍為100Hz-1KHz,128個點。(3)可通過按鍵或觸摸筆切換輸出信號類型。2設計方案2.1信號產生部分方案一:采用模擬分立元件或單片壓控函數(shù)發(fā)生器,可以產生正弦波、方波、三角波,通過調整外部元件可以改變輸出頻率,但采用模擬元器件由于元件分散性太大,因而產生頻率穩(wěn)定性較差,精度低,地抗干擾能力低,成本高,而且靈活心性較差,不能實現(xiàn)任意波形以及波形運算輸出等智能化的功能。方案二:使用集成函數(shù)發(fā)生器芯片ICL8038。芯片ICL8032能輸出方波、三角波、正弦波和鋸齒波四種不同的波形,將他作為信號發(fā)生器。它是電壓控制頻率的集成芯片,失真度很低??奢斎氩煌耐獠侩妷簛韺崿F(xiàn)不同的頻率輸出。為了達到數(shù)控的目的,可用高度的DAC來輸出電壓以控制正弦波的頻率。方案三:采用鎖相式頻率合成方案,鎖相式頻率合成一個高穩(wěn)定度和精確度的大量離散技術,他在一定程度上解決了既要頻率穩(wěn)定精確又要頻率在較大的范圍內可調的矛盾,但是頻率受VCO可便頻率范圍的影響,高低頻率比不可能做的很高,而且只能產生正弦波或方波。方案四:直接數(shù)字頻率合成技術(DDS)。DDS是一種純數(shù)字化方法。它現(xiàn)將所需正弦波一個周期的離散樣點的幅值數(shù)字量存入ROM中,然后按一定的地址間隔讀出,并經DA轉換器形成模擬正弦波,再經低通濾波器得到質量較好的信號。方案五:利用函數(shù)將波形的點數(shù)據保存在芯片的RAM中,根據所要的波形的頻率計算出它的周期,經計算得到在定時器定時時間固定的前提下產生一個完整的波形所需要的輸出的點數(shù),這樣數(shù)據指針可以根據點數(shù)的數(shù)量來進行移動,得到頻率準確、切換快速的信號。VCO不能實現(xiàn)穩(wěn)定頻率信號的輸出并且難于數(shù)字控制。并且電容、電阻參數(shù)隨溫度等其他因素的影響,頻率穩(wěn)定度以及電路的穩(wěn)定度都較低,實現(xiàn)也比較復雜,不予采納。雖然ICL8038可很好的實現(xiàn)頻率輸出的控制,但查看ICL8038的設計資料可知頻率輸出范鬧為0.01Hz~1kHz不能達到題目的要求,故不予選用。PLL方案和DDS方案都能實現(xiàn)100Hz~1KHz的穩(wěn)定的信號輸出,.且能達到較小的頻率步進,但是PLL的動態(tài)特性卻很差,在頻率改變時,環(huán)路從小穩(wěn)定到穩(wěn)定的過程有時間問延遲。相比較而言,DDS的頻率輸出范圍一般低于PLL,且雜散也大于PLL方案,但DDS信號源具有輸出頻率穩(wěn)定度高、精度更高、分辨率更高且易于程控等優(yōu)點,且頻率改變不存在失調過程,盡管有雜散干擾,只需在輸出級加濾波器仍可以得到質量很好的波形。而方案五集中了上述四個方案的各個優(yōu)點,因此采用方案五來實現(xiàn)波形信號的產生。2.2幅度進行調整部分方案一:用高速模擬乘法器實現(xiàn)采用AD835高速模擬乘法器,來實現(xiàn)模擬調制。模擬乘法器AD835的-3dB截止頻率為250MHz,能夠滿足題日的要求。但是AD835的差分輸入范圍僅為±1V,因此必須對輸入信號進行預處理,這樣在增加硬件的同時,又加大了設計的難度。方案二:采用高速的D/A轉換器在STM32f107中集成著一個高速的D/A轉換器,我們可以直接在軟件中設置一個幅度的參數(shù)來改變輸出波形的幅度大小。綜上所述,采用方案二,雖然增加了軟件的難度,延遲了波形的輸出時問,但是可以不用外加硬件拓展,節(jié)省了成本。2.3對頻率調整部分方案一:通過在存儲芯片ROM中保存不同頻率信號的信號發(fā)生點數(shù),在頻率切換時調用ROM中所存儲的不同點數(shù)模塊來實現(xiàn)頻率的切換。方案二:在存儲芯片RAM中保存由軟件實時產生的波形點數(shù),通過所取的點數(shù)的不同來決定發(fā)生的波形的頻率。由于設計中的信號要進行不斷的改變,因此波形的數(shù)據不能存儲在ROM中,應該存儲RAM中,因此采用方案二的設計方法。3系統(tǒng)整體設計3.1系統(tǒng)總框圖如圖1所示為系統(tǒng)總框圖。圖1系統(tǒng)總框圖3.2各模塊功能3.2.1波形產生電路通過軟件將波形數(shù)據存儲到RAM當中去,再把這些數(shù)據輸送到D/A轉換器進行轉換得到模擬波形。3.2.2按鍵部分用STM32F107開發(fā)板上自身帶有的鍵盤得到鍵值,通過中斷服務程序將鍵值信息傳給控制芯片。3.2.3顯示部分波形直接在示波器上顯示,波形的中間調試參數(shù)在液晶屏上顯示。液晶原題圖如圖2所示。圖2液晶原題圖3.2.4DAC轉換器數(shù)字/模擬轉換模塊(DAC)是12位數(shù)字輸入,電壓輸出的數(shù)字/模擬轉換器。DAC可以配置為8位或12位模式,也可以與DMA控制器配合使用。DAC工作在12位模式時,數(shù)據可以設置成左對齊或右對齊。DAC模塊有2個輸出通道,每個通道都有單獨的轉換器。在雙DAC模式下,2個通道可以獨立地進行轉換,也可以同時進行轉換并同步地更新2個通道的輸出。DAC可以通過引腳輸入參考電壓VREF+以獲得更精確的轉換結果。DAC主要特征●2個DAC轉換器:每個轉換器對應1個輸出通道●8位或者12位單調輸出●12位模式下數(shù)據左對齊或者右對齊●同步更新功能●噪聲波形生成●三角波形生成●雙DAC通道同時或者分別轉換●每個通道都有DMA功能●外部觸發(fā)轉換●輸入參考電壓VREF+DAC輸出電壓:數(shù)字輸入經過DAC被線性地轉換為模擬電壓輸出,其范圍為0到VREF+。任一DAC通道引腳上的輸出電壓滿足下面的關系:DAC輸出=VREFx(DOR/4095)單個DAC通道的框圖如下圖3所示。圖3單個DAC通道的框圖4各個模塊的實現(xiàn)及分析4.1正弦波的產生本設計中信號的產生直接用STM32F107芯片上集成的D/A轉換器和軟件的結合來生成。波形的信號數(shù)據采用了函數(shù)計算的方法來取得:Y=sin(N)(4-1)其中,N表示所要取得的點數(shù)的多少。在設計中我選擇N=128,即一個完整的基本的正弦信號有128個數(shù)據信號點組成。將數(shù)據存儲到控制芯片STM32F107的RAM當中,根據所要的頻率來取得信號數(shù)據的多少,點數(shù)多少的計算如下:N=T/2t(4-2)其中,N表示點數(shù),T表示所要產生的波形信號的周期,t表示定時器的時問長短,從RAM中取得點數(shù)的間隔為:M=128/N(4-3)其中M表示在RAM中的表格取得點數(shù)的間隔,根據不同的間隔的大小決定產生一個完整的波形信號所要的數(shù)據多少不同。設計中要求信號的最高產生的頻率為1KHZ,根據條奎斯特定理,采樣的頻率最少要為所要信號的頻率的兩倍,但是為了更好的保證信號的完整輸出,我們至少要讓它采樣10個點才能輸出完整波形,就要求采樣的頻率為他的10倍即10KHZ.采樣時間的大小為100us。4.2三角波的產生在設計中,三角波的產生就直接利用定時器定時時間的長短來控制信號數(shù)據的輸出,信號數(shù)據從一個較低(或高)的位置開始按照一定的規(guī)律步進,當其達到一個高度時再按照相同的步進下降到原來的數(shù)據大小,如此反復的輸出就構成了三角波模擬信號的輸出。4.3方波的產生在設計中,方波的產生由大小不同的兩個信號數(shù)據交替輸出形成,每個信號數(shù)據輸出的時間長短根據所要點信號頻率來決定。4.4幅度的控制在設計中,為了能使波形在示波器中顯示,這樣就要設定好波形的幅度,在設計時我把波形的幅度控制在128之內,才能很好的顯示波形。同時為了改變幅度的大小,我設置了一個參數(shù)直接與所取得的信號數(shù)據相乘,這就改變了信號數(shù)據的大小,也就使得D/A轉換時的數(shù)據大小產生變化,從而體現(xiàn)在輸出的信號波形在幅度上發(fā)生改變。4.5頻率的控制在輸出的信號數(shù)據的時間間隔一定時,當產生一個完整波形時所需要的點數(shù)發(fā)生變化時信號的周期就發(fā)生變化,這樣它的頻率就相應的變化。因此,在設計中,通過固定定時器的定時長短,改變波形數(shù)據的點數(shù)多少就改變了信號的頻率。4.6按鍵模塊按鍵是直接與STM32F107芯片的PC4、PB10、PC13、PA0連接,通過ARM芯片對引腳輸入數(shù)據,0表示有效,l表示無效。鍵l用來選擇輸出波形,鍵2用來改變波的幅值,鍵3用來改變波形的頻率,鍵4用來改變方波的占空比。按鍵原理圖如圖4所示。圖4按鍵原理圖4.7RTC的設置RTC(Real-timeclock)是實時時鐘的意思。神舟IV號開發(fā)板的處理器STM32F107集成了RTC(Real-timeclock)實時時鐘,在處理器復位或系統(tǒng)掉電但有實時時鐘電池的情況下,能維持系統(tǒng)當前的時間和日期的準確性。實時時鐘是一個獨立的定時器。RTC實時時鐘模塊擁有一組連續(xù)計數(shù)的計數(shù)器,在相應軟件配置下,可提供時鐘日歷的功能。修改計數(shù)器的值可以重新設置系統(tǒng)當前的時間和日期。RTC由兩個主要部分組成。第一部分(APB1接口),用來和APB1總線相連。此單元還包含一組16位寄存器,可通過APBI總線對其進行讀寫操作APBI接口由APB1總線時鐘驅動,用來與APBI總線接口。另一部分(RTC核心)由一組可編程計數(shù)器組成,分成兩個主要模塊。第一個模塊是RTC的預分頻模塊,它可編程產生最長為1秒的RTC時間基準TR_CLK。RTC的預分頻模塊包含了一個20位的可編程分頻器(RTC預分頻器)。如果在RTC_CR寄存器中設置了相應的允許位,則在每個TRCLK周期中RTC產生一個中斷(秒中斷)。第二個模塊是一個32位的可編程計數(shù)器,可被初始化為當前的系統(tǒng)時間。系統(tǒng)時間按TRCLK周期累加并與存儲在RTCALR寄存器中的可編程時間相比較,如果RTC_CR控制寄存器中設置了相應允許位,比較匹配時將產生一個鬧鐘中斷。圖5為簡化的RTC框圖。圖5簡化的RTC框圖5軟件設計本系統(tǒng)的軟件設計采用C語言,對ARM7進行編程實現(xiàn)各項功能。采用KEIL軟件編寫,可以實現(xiàn)波形的切換、幅度頻率的調節(jié)以及方波的占空比調節(jié)、液晶顯示等功能。主程序主要起到一個導向和決策功能,決定什么時候系統(tǒng)采取何種動作。其余各種功能的實現(xiàn)主要通過具體的子程序來完成。系統(tǒng)總流程圖如圖6所示。圖6系統(tǒng)總流程圖6調試部分6.1控制電路的調試對控制電路進行時序仿真,在仿真圖中幾乎總會出現(xiàn)我們所不需要的毛刺,這些毛刺有時會給系統(tǒng)帶來致命的影響,我們必須采取措施消除這樣的毛刺。由于毛刺一般出現(xiàn)在信號發(fā)生電平轉換的時刻,也即輸出信號的建立時間內,而在輸出信號的保持時間內不大會出現(xiàn)。因此,若帶有毛刺的信號持續(xù)時間較長,我們可在輸出信號的持續(xù)時間內用一定寬度的高電平脈沖選通一個與門來獲得該信號,此時毛刺自然已被消除。高電平脈沖可由軟件控制鎖存器來得到。若帶有毛刺的信號保持時間較短,可利用D觸發(fā)器的D輸入端對毛刺不敏感的特點,在輸出信號的保持時間內用觸發(fā)器讀取輸出信號,此時毛刺自然也已被消除,觸發(fā)器的時鐘沿可由軟件控制地址譯碼器來得到。另外,在某些情況下,需要對信號進行一定的延時,以完成特定的功能。利用D觸發(fā)器可在時鐘的控制下對信號進行比較精確的延時,這種方法的最小延時是半個時鐘周期。延時也是消除毛刺的手段之一。6.2硬件電路的調試在硬件電路調試中,要注意焊接的藝術和元件的布局,讓整體顯得美觀。不能出現(xiàn)漏焊、錯焊等現(xiàn)象。在燒錄入程序之后,對電路進行測試,看電路是否能達到預期的功能。如果不能,則要進行程序的調試,并檢測電路連接、元件使用等方面的問題,努力排除故障,讓系統(tǒng)功能實現(xiàn)。7系統(tǒng)測試與數(shù)據分析7.1正弦波、方波和三角波的頻率測試幅值調至1.0V正弦波、方波和三角波的頻率測試結果如表1所示。表1正弦波、方波和三角波的頻率測試結果7.2正弦波、方波和三角波的幅值測試頻率調至500Hz正弦波、方波和三角波的幅值測試結果如表2所示。表2正弦波、方波和三角波的幅值測試結果7.3方波占空比測試幅值調至1.0V頻率調至500Hz方波占空比測試結果如表3所示。表3方波占空比測試結果總結通過這次基于STM32的信號發(fā)生器設計,讓我對數(shù)字信號的產生、調節(jié)以及DA轉換原理有了更加深刻的了解,除此之外,對M3內核的了解以及STM32F107板上資源的了解與運用又更加嫻熟了一步。在測試階段,尤其是在方案選擇以及程序的編寫上,有很深的體會,有時候一個簡單的錯誤就有可能造成致命錯誤,導致信號無法正常產生。通過本次課程設計,我更加深刻的認識到團隊合作的重要性,在剛開始設計的時候由于對信號的產生不太熟悉,到處收集資料選擇方案,致使耽誤很多時間,之后與同學商量,一起探討。最后成功設計出所需波形,完成任務。所以說合作,是設計成功的關鍵,只有大家團結一致,才能更快更好的完成任務。參考文獻[1]康華光.電子技術基礎模擬部分第四版[M].北京:高等教育出版社,1999.6.[2]閻石.數(shù)字電子技術基礎第四版[M].北京:高等教育出版社,1999.6.[3]王福瑞等.單片微機測控系統(tǒng)設計大全[M].北京航空航天大學出版社,1998(331-337).[4]寧改娣,楊拴科.DSP控制器原理及應用[M].科學出版社,2002.[5]周立功等.ARM嵌入式系統(tǒng)基礎教程[M].北京:北京航空航天大學出版社,2005.1.[6]周立功等.ARM嵌入式系統(tǒng)實驗教程[M].北京:北京航空航天大學出版社,2005.1.[7]唐清善.ProtelDXP高級實例教程[M].中國水利水電出版社,2004.4.[8]羅浩等.一種新的基于ARM的數(shù)據采集系統(tǒng)設計[J].信陽師范學院學報(自然科學版),2006.4.[9]秦偉等.基于ARM處理器的數(shù)據采集系統(tǒng)的設計[J].自動化技術與應用.2006年第10期.[10]杜春雷.ARM體系結構與編程.清華大學出版社,2003.[11]李寧.ARM開發(fā)工具ReaIViewMDK使用入門[M].北京航空航天大學出版社,2008.[12]李寧.基于MDK的STM32處理器開發(fā)應用[M].北京航空航天大學出版社,2008.[13]劉黎明等.單片機與嵌入式系統(tǒng)應用[J].英文刊名MICROCONTROLLER&EMBEDDEDSYSTEM.2002(7).附錄信號發(fā)生器各模塊的程序/**功能:STM32DAC數(shù)模轉換(正弦波/矩形波/三角波)輸出實驗*說明:按SW5輸出正弦波/按SW4輸出矩形波/按SW3輸出三角波,輸出端口PA4**/#include<stdio.h>#include<stm32f10x_lib.h>//STM32F10xLibraryDefinitions#include"STM32_Reg.h"http://STM32registerandbitDefinitions#include"STM32_Init.h"http://STM32Initialization#include"common.h"#include"sine_wave_1024.h"http://輸出端口:PA4#defineSINE_WAVE 1//sine 正弦波 #defineRECT_WAVE 2//rectangular 矩形波#defineHACKLE_WAVE 3//hackle 三角波UINT8flag=0;UINT8func=SINE_WAVE;/*MAINfunction**/intmain(void){UINT16i=0;UINT32*pDAC_BASE=(UINT32*)DAC_BASE;stm32_Init();//STM32setupLED_Init();//打開DAC時鐘使能RCC->APB1ENR|=(UINT32)(1<<29);//設置DAC控制參數(shù)*(pDAC_BASE+0x00)=(0x01<<0)|(0x00<<2)|(0x04<<3)|(0x03<<6)|(0x0b<<8);*(pDAC_BASE+0x04)=0x01printf("Programstart\r\n"); while(TRUE) //Loopforever{ if(!Get_SW5()) {func=SINE_WAVE; } elseif(!Get_SW4()) {func=RECT_WAVE; } elseif(!Get_SW3()) {func=HACKLE_WAVE; } switch(func) { caseSINE_WAVE://#ifdefSINE_WAVEif(i<1024)i+=2;elsei=0;*(pDAC_BASE+0x08)=Sine_WAVE[i]<<4;#endif// break; caseRECT_WAVE: #ifdefRECT_WAVEfor(i=0;i<2000;i++)*(pDAC_BASE+0x08)=0x0fff;for(i=0;i<2000;i++)*(pDAC_BASE+0x08)=0;#endif// break; caseHACKLE_WAVE: #ifdefHACKLE_WAVEif(flag){ flag=0;while(TRUE){ if(i<4096)i+=1;elsebreak; *(pDAC_BASE+0x08)=i;}}else{flag=1;while(TRUE){ if(i>0)i-=1;elsebreak; *(pDAC_BASE+0x08)=i;}}#endif break; default: break; } //}//endwhile}//endmain/**設置方向**/voidSet_IO_direction(UINT8PORT,UINT8GPIO,UINT8Value){RCC->APB2ENR|=RCC_APB2ENR_IOPAEN; if(PORT==PORT_A) { if(GPIO<8) { GPIOA->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOA->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOA->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOA->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_B) { if(GPIO<8) { GPIOB->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOB->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOB->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOB->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_C) { if(GPIO<8) { GPIOC->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOC->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOC->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOC->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_D) { if(GPIO<8) { GPIOD->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOD->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOD->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOD->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}if(PORT==PORT_E) { if(GPIO<8) { GPIOE->CRL&=~(0x0f<<(GPIO*4)); //Clrusedbit GPIOE->CRL|=(Value<<(GPIO*4)); //Setusedbit } else { GPIOE->CRH&=~(0x0f<<(GPIO*4-8*4));//Clrusedbit GPIOE->CRH|=(Value<<(GPIO*4-8*4));//Setusedbit }}}/*SendCharWritecharactertoSerialPort.**/intSendChar(intch){while(!(USART2->SR&USART_FLAG_TXE));USART2->DR=(ch&0x1FF);return(ch);}/*GetKeyReadcharactertoSerialPort.**/intGetKey(void){while(!(USART2->SR&USART_FLAG_RXNE));return((int)(USART2->DR&0x1FF));}voidLED_Init(void){ Set_IO_direction(PORT_E,LED1,OUTPUT); Set_IO_direction(PORT_E,LED2,OUTPUT); Set_IO_direction(PORT_E,LED3,OUTPUT); Set_IO_direction(PORT_E,LED4,OUTPUT); Set_IO_direction(PORT_B,SW2,INPUT); Set_IO_direction(PORT_B,SW3,INPUT); Set_IO_direction(PORT_E,SW4,INPUT); Set_IO_direction(PORT_E,SW5,INPUT); Turn_OFF_LED1(); Turn_OFF_LED2(); Turn_OFF_LED3(); Turn_OFF_LED4();}/*insertadelaytime.**/voiddelay(unsignedintnCount){for(;nCount!=0;nCount--);}正弦波歸一化程序:tosin[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療銷售咨詢合同范本
- 供應商尾款合同范本
- 北京拆遷合同范本
- 單人旅游合同范本
- 單位郊區(qū)租房合同范本
- 丟車包賠協(xié)議合同范本
- 單位電線更換維修合同范例
- 醫(yī)藥調查項目合同范本
- 出錢經營合同范本
- 農業(yè)種植股合同范本
- 2024年廣東公務員考試申論試題(公安卷)
- 期末 (試題) -2024-2025學年人教PEP版英語五年級上冊
- 2025年高考作文備考之二元思辨作文講解
- 專題17 物質結構與性質綜合題-五年(2020-2024)高考化學真題分類匯編(解析版)
- 語文學習任務群的解讀及設計要領
- 光伏發(fā)電站項目安全技術交底資料
- 跨文化交際教程 課件 杜平 Unit 1 Cultural Awareness and Intercultural Communication-Unit 3 Nonverbal Communication
- 光伏工程施工組織設計
- 《護理科研》課件
- 社保知識競賽考試題及答案
- 人教版(2024新版)八年級上冊物理《開啟科學探索之旅》教學設計
評論
0/150
提交評論