基于嵌入式STM32的飛思卡爾智能車設(shè)計(jì)(共30頁)_第1頁
基于嵌入式STM32的飛思卡爾智能車設(shè)計(jì)(共30頁)_第2頁
基于嵌入式STM32的飛思卡爾智能車設(shè)計(jì)(共30頁)_第3頁
基于嵌入式STM32的飛思卡爾智能車設(shè)計(jì)(共30頁)_第4頁
基于嵌入式STM32的飛思卡爾智能車設(shè)計(jì)(共30頁)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上摘 要飛思卡爾智能車大賽是面向全國大學(xué)生舉辦的應(yīng)用型比賽,旨在培養(yǎng)創(chuàng)新精神、協(xié)作精神,提高工程實(shí)踐能力的科技活動(dòng)。大賽主要是要求小車自主循跡并在最短時(shí)間內(nèi)走完整個(gè)賽道。針對(duì)小車所安裝傳感器的不同,大賽分為光電組、電磁組和攝像頭組。本文介紹了本院自動(dòng)化系第一屆大學(xué)生智能汽車竟賽的智能車系統(tǒng)。包括總體方案設(shè)計(jì)、機(jī)械結(jié)構(gòu)設(shè)計(jì)、硬件電路設(shè)計(jì)、軟件設(shè)計(jì)以及系統(tǒng)的調(diào)試與分析。機(jī)械結(jié)構(gòu)設(shè)計(jì)部分主要介紹了對(duì)車模的改進(jìn),以及舵機(jī)隨動(dòng)系統(tǒng)的機(jī)械結(jié)構(gòu)。硬件電路設(shè)計(jì)部分主要介紹了智能車系統(tǒng)的硬件電路設(shè)計(jì),包括原理圖和PCB設(shè)計(jì)智能車系統(tǒng)的軟、硬件結(jié)構(gòu)及其開發(fā)流程。該智能車車模采用學(xué)校統(tǒng)一提供

2、的飛思卡爾車模,系統(tǒng)以STM32F103C8T6作為整個(gè)系統(tǒng)信息處理和控制命令的核心,使用激光傳感器檢測(cè)道路信息使小車實(shí)現(xiàn)自主循跡的功能 關(guān)鍵字:飛思卡爾智能車 STM32F103C8T6 激光傳感器 第一章 概述1.1專業(yè)課程設(shè)計(jì)題目基于嵌入式STM32的飛思卡爾智能車設(shè)計(jì)1.2專業(yè)課程設(shè)計(jì)的目的與內(nèi)容1.2.1目的讓學(xué)生運(yùn)用所學(xué)的計(jì)算機(jī)、傳感器、電子電路、自動(dòng)控制等知識(shí),在老師的指導(dǎo)下,結(jié)合飛思卡爾智能車的設(shè)計(jì)獨(dú)立地開展自動(dòng)化專業(yè)的綜合設(shè)計(jì)與實(shí)驗(yàn),鍛煉學(xué)生對(duì)實(shí)際問題的分析和解決能力,提高工程意識(shí),為以后的畢業(yè)設(shè)計(jì)和今后從事相關(guān)工作打下一定的基礎(chǔ)。1.2.2內(nèi)容本次智能車大賽分為光電組和創(chuàng)新

3、做,我們選擇光電組小車完成循跡功能。該智能車車模采用學(xué)校統(tǒng)一提供的飛思卡爾車模,系統(tǒng)以STM32F103C8T6作為整個(gè)系統(tǒng)信息處理和控制命令的核心,我們對(duì)系統(tǒng)進(jìn)行了創(chuàng)造性的優(yōu)化:其一,硬件上采用激光傳感器的方案,軟件上采用keil開發(fā)環(huán)境進(jìn)行調(diào)試、算法、彎道預(yù)判。其二,傳感器可以隨動(dòng)跟線,提高了檢測(cè)范圍。其三,獨(dú)立設(shè)計(jì)了控制電路板,充分利用STM32單片機(jī)現(xiàn)有模塊進(jìn)行編程,同時(shí)撥碼開關(guān)、狀態(tài)指示燈等方便了算法調(diào)試。1.3方案的研討與制定1.3.1傳感器選擇方案方案一:選用紅外管作為賽道信息采集傳感器。由于識(shí)別賽道主要是識(shí)別黑白兩種不同的顏色,而紅外對(duì)管恰好就能實(shí)現(xiàn)區(qū)分黑白的功能,當(dāng)紅外光照在

4、白色KT板上時(shí),由于賽道的漫反射作用,使得一部分紅外光能反射回來,讓接收管接的輸出引腳的電壓發(fā)生變化,通過采集這個(gè)電壓的變化情況來區(qū)分紅外光點(diǎn)的位置情況,以達(dá)到區(qū)分賽道與底板的作用。紅外管的優(yōu)點(diǎn)在于價(jià)格便宜,耐用;缺點(diǎn)卻用很多:1、紅外光線在自然環(huán)境中,無論是室內(nèi)還是室外均比較常見,就使得其抗干擾能力不強(qiáng),容易受環(huán)境變化的影響。2、調(diào)試不方面,由于紅外光是不可見光,調(diào)試的時(shí)候需要采用比較麻煩的方法來判斷光電的位置。3、由于紅外管光線的直線性不好,就使得紅外傳感器所能準(zhǔn)確的判斷的最遠(yuǎn)距離比較小,也就是通常所說的前瞻不夠遠(yuǎn)。方案二:選用激光作為路徑識(shí)別傳感器。激光傳感器的工作原理和紅外傳感器的工作

5、原理基本相同,也是利用光線在賽道上發(fā)生漫反射后接收反射回來的光線來識(shí)別賽道的。激光傳感器用很多優(yōu)點(diǎn):1、激光光束的直線性十分好,發(fā)射出去的光線發(fā)生散射的程度可以忽略;2、經(jīng)過調(diào)制后的激光受環(huán)境其他光線干擾的程度也十分低。3、激光傳感器可以讓賽車的前瞻達(dá)到80CM到100CM左右,為賽車的高速運(yùn)時(shí)所需的準(zhǔn)確及時(shí)的賽道信息提供了保障。不過激光也用缺點(diǎn):容易衰減。最終選擇的方案:激光傳感器相對(duì)于紅外傳感器有很明顯的優(yōu)勢(shì):1、抗干擾能力強(qiáng);2、前瞻遠(yuǎn);3、調(diào)試效果直觀。而在賽車需要的高速的情況下,看得足夠遠(yuǎn)和準(zhǔn)確顯得尤為重要,在這樣的要求下,激光傳感器較于紅外傳感器有十分明顯的優(yōu)勢(shì),所以最終我們選擇的

6、是擁有絕對(duì)優(yōu)勢(shì)的激光傳感器作為路徑識(shí)別傳感器。1.3.2傳感器安裝方式方案一:傳感器角度和高度不可變化的固定式。方案二:傳感器可以活動(dòng)的可動(dòng)式。傳感器可動(dòng)式主要是依靠舵機(jī)帶動(dòng)而活動(dòng),也就是最近這兩屆比賽中開始出現(xiàn)的“搖頭”(又稱“擺頭”)式。通過控制相應(yīng)的舵機(jī)達(dá)到控制傳感器角度的效果,調(diào)節(jié)傳感器的角度可以讓傳感器發(fā)出的光線始終落在賽道上你想要的位置,這樣大大地增加了對(duì)賽道信息的準(zhǔn)確性和及時(shí)性,為賽車速度的提升有很大的幫助,在第六屆的競賽中,我們就能體會(huì)到搖頭光電車的速度較以往的光電車有了很大的提高。最終確定的方案:經(jīng)過各方面的考慮,最終選擇單搖頭作為傳感器的固定方式。安裝圖如圖1-1: 圖1-

7、1 傳感器安裝圖1.4 項(xiàng)目功能模塊化設(shè)計(jì)(1)MC9S12XS128主控模塊:作為整個(gè)智能汽車的“大腦”,將采集光電傳感器的信號(hào),根據(jù)控制算法做出控制決策,驅(qū)動(dòng)直流電機(jī)完成對(duì)智能汽車的控制。(2)激光傳感器模塊:是智能汽車的“眼睛”,可以通過一定的前瞻性,提前感知預(yù)測(cè)前方的賽道信息,為智能汽車的“大腦”做出決策提供必要的依據(jù)和充足的反應(yīng)時(shí)間。(3)電源模塊:為整個(gè)系統(tǒng)提供合適而又穩(wěn)定的電源。(4)電機(jī)驅(qū)動(dòng)模塊:驅(qū)動(dòng)直流電機(jī)完成智能汽車的加減速控制和轉(zhuǎn)向控制。(5)舵機(jī)控制:一方面,控制傳感器檢測(cè)道路彎道,控制傳感器的轉(zhuǎn)向。另一方面,控制小車的整體的轉(zhuǎn)向。第二章 項(xiàng)目硬件方案2.1 系統(tǒng)方框圖

8、圖2-1智能車整體框圖整個(gè)智能車系統(tǒng)包括:激光傳感器、舵機(jī)轉(zhuǎn)向控制、電機(jī)驅(qū)動(dòng)控制、電源供電模塊和STM32F103C8T6。詳細(xì)如下:(1)激光傳感器:該智能車通過激光傳感器對(duì)道路信息進(jìn)行采集。原理:當(dāng)激光照射到黑線時(shí),黑線將大部分光吸收掉,激光不能反射回來。當(dāng)激光照射到白色賽道時(shí),由于漫反射作用接收管能夠?qū)⒓す饨邮栈貋?。由此來?duì)道路信息采集與處理。(2)舵機(jī)控制:本車采用搖頭舵機(jī)和轉(zhuǎn)向舵機(jī)相互協(xié)調(diào)的方式控制車模在不同的彎道給出合適的轉(zhuǎn)角。搖頭舵機(jī)作用是追尋賽道,轉(zhuǎn)向舵機(jī)根據(jù)所采集到的信息給出不同的打角。(3)電機(jī)驅(qū)動(dòng)控制:想要智能車以最快的速度跑完全程則必須對(duì)電機(jī)有很好的控制策略。我們的控制

9、策略是:直道時(shí)以最快速度行駛,入彎時(shí)減速,出彎加速。這樣小車以最快的速度順利的跑完全程。(4)電源模塊:電源智能車工作的必要前提,它為各個(gè)電路模塊提供穩(wěn)定電源,保證各模塊正常工作,這也是智能車設(shè)計(jì)需要考慮的一個(gè)很關(guān)鍵的問題。(5)MC9S12XS128最小系統(tǒng):這部分是整車的核心。它主要實(shí)現(xiàn)對(duì)采集的道路信息進(jìn)行分析與處理,給舵機(jī)和電機(jī)不同的占空比來控制小車的轉(zhuǎn)向和加速減速。2.2 系統(tǒng)器件選型小車的車模、電機(jī)、舵機(jī)及電池均由學(xué)校統(tǒng)一提供,而單片機(jī)和傳感器則經(jīng)過討論,我們選用了STM32F103C8T6和激光傳感器。2.1.1車膜整體結(jié)構(gòu)圖 2-2 車模實(shí)物圖硬件資源:(1)1個(gè)HL-380H車

10、模的基本支架;(2)1個(gè)RS380高速電機(jī);(3)1個(gè)MG995舵機(jī);(4)1個(gè)配套電機(jī)齒輪;(5)1套螺絲包;(6)軸承若干。2.2.2 轉(zhuǎn)向舵機(jī)的安裝H型前支架配置(適合4.5MM板子)序號(hào)名稱數(shù)量備注1前支架H型1大小部件共12個(gè)2杯式軸承4*11*423雙通銅柱M3*1624雙通銅柱M3*2045雙通銅柱M4*3026螺絲M3*812+17螺絲M3*121+18螺絲M4*126+19螺絲M4*252+110螺帽M4*12普通4+111螺帽M4自鎖2+112螺帽M3自鎖1+113舵機(jī)MG99511465mm車輪2表 2-12.2.3 車輪及底盤調(diào)整540后支架配置序號(hào)名稱數(shù)量備注1540

11、后支架1共4個(gè)部件2540電機(jī)1檢查螺絲是否上在電機(jī)上33.17齒輪 11T145*120mm光軸1檢查軸承和光軸是否有配套55*11*4杯式軸承265.1mm鎖緊扣375mm_72齒輪2檢查齒輪有沒有壞齒8齒輪插銷1+195mm聯(lián)軸器210機(jī)米M3*34+111機(jī)米M3*62+1短銷的1+1 長銷的是2+1123mm機(jī)米扳手113M3*25雙通銅柱214M3*30雙通銅柱215M3*12螺絲2+116M3*8螺絲8+117M4*6螺絲2+1固定輪子在聯(lián)軸器1865mm橡膠輪2表 2-22.2.4 RS540電機(jī)圖2-3 電機(jī)實(shí)物圖電壓轉(zhuǎn)數(shù)(轉(zhuǎn)/分)電流3V84001.30A4.5V12400

12、1.47A6V165001.60A7.5V208001.70A表 2-32.2.5 電池電源圖 2-4電池實(shí)物圖主要參數(shù):電池厚:15MM 寬:35MM 長:67MM電池重:70G持續(xù)放電電流:20C瞬間放電電流:40C放電終止電壓:單體208V2.2.6 單片機(jī)單片機(jī)是系統(tǒng)設(shè)計(jì)的核心,根據(jù)設(shè)計(jì)要求,本設(shè)計(jì)采用STM32F103C8T6單片機(jī)作為控制器,選擇購買單片機(jī)最小系統(tǒng),此系統(tǒng)穩(wěn)定且非常可靠,所有引腳均引出,能滿足設(shè)計(jì)要求,具體實(shí)物如圖2-3所示:圖2-3 STM32F103C8T6實(shí)物圖2.2.7 激光傳感器針對(duì)激光傳感器的優(yōu)點(diǎn)我們選用了12個(gè)激光頭,對(duì)應(yīng)6個(gè)接收管。實(shí)物圖如圖2-4:

13、圖2-4 激光傳感器實(shí)物圖2.3 系統(tǒng)整體原理圖2.3.1 整體原理綜述整個(gè)小車系統(tǒng)由單片機(jī)最小系統(tǒng)、電機(jī)驅(qū)動(dòng)電路、傳感器電路、電源供電電路以及單片機(jī)的下載在口構(gòu)成,總的主控制電路圖如下圖2-5:圖2-5主控制電路圖2.3.2 各模塊原理綜述1單片機(jī)最小系統(tǒng)單片機(jī)最小系統(tǒng)的三要素是:電源、晶振、復(fù)位電路構(gòu)成。如圖2-6為單片機(jī)最小系統(tǒng)電路圖:圖2-6 單片機(jī)最小系統(tǒng)(1)微控制器,STM32F103C8T6微控制單元作為STM32系列的32位單片機(jī),由標(biāo)準(zhǔn)片上外圍設(shè)備組成,包括32位中央處理器、64KB的Flash存儲(chǔ)器、20KB的RAM、兩個(gè)12位ADC,三個(gè)通用16位定時(shí)器加一個(gè)PWM定時(shí)

14、器,以及標(biāo)準(zhǔn)和先進(jìn)的通訊接口:上兩I2CS和SPI接口,三個(gè)串行外設(shè)接口,一個(gè)USB和CAN,組8通道的輸入捕捉或輸出捕捉的增強(qiáng)型捕捉定時(shí)器、兩組8通道10路模數(shù)轉(zhuǎn)換器、一組8通道脈寬調(diào)制模塊、一個(gè)字節(jié)數(shù)據(jù)鏈路控制器、29 路獨(dú)立的數(shù)字I/O接口、20路帶中斷和喚醒功能的數(shù)字I/O接口、1個(gè)增強(qiáng)型CAN總線接口,同時(shí),單片機(jī)內(nèi)集成了鎖相環(huán)電路可使能耗和性能適應(yīng)具體操作的需要。(2)電源是系統(tǒng)正常工作的保障,關(guān)系著小車是否能正常運(yùn)行。比賽使用的是統(tǒng)一提供的7.2V,2000MA NI-CD電池供電。而單片機(jī)和傳感器需要的是3.3V和5V電源,舵機(jī)需要7.2V電源,因此我們需要穩(wěn)壓芯片降低電壓以提

15、供各個(gè)模塊使用。我們常用的集成三端穩(wěn)壓芯片有兩種:線性穩(wěn)壓芯片和開關(guān)型穩(wěn)壓芯片。線性穩(wěn)壓芯片的特點(diǎn)是反應(yīng)速度很快、輸出紋波小、發(fā)熱量大、效率低,而開關(guān)型穩(wěn)壓型片則功耗小、效率高,單輸出紋波大,電路復(fù)雜。經(jīng)過大量的選型和測(cè)試后,我們選擇了LM1117和7805。LM1117為低壓差線性調(diào)節(jié)穩(wěn)壓器件,最大輸出電流800MA,經(jīng)過LM1117穩(wěn)壓后,輸出3.3V和5V,對(duì)單片機(jī)和傳感器等供電。7805為三端穩(wěn)壓器件,經(jīng)過7805穩(wěn)壓后,輸出7.2V,對(duì)舵機(jī)供電。2-7圖為電源模塊基本電路圖 圖2-7電源模塊電路圖(3)晶振圖2-8晶振電路圖(4)復(fù)位電路圖2-7復(fù)位電路圖2、電機(jī)驅(qū)動(dòng)模塊本次選用飛思

16、卡公司的MC33886電機(jī)驅(qū)動(dòng)集成芯片它是一種常見的集成H橋式電機(jī)驅(qū)動(dòng)芯片,該芯片具有完善的過流、欠壓、過溫保護(hù)等功能具有最大5A的連續(xù)工作電流,內(nèi)部MOSFET導(dǎo)通電阻為120毫歐,使用集成芯片的電路設(shè)計(jì)簡單,可靠性高,由于電機(jī)較大,工作電流遠(yuǎn)不止5A,因此我們采用兩片MC3886并聯(lián)。電路圖如2-8:圖2-8電機(jī)驅(qū)動(dòng)電路3、激光傳感器激光發(fā)射管發(fā)射出去的激光照射到賽道表面時(shí)會(huì)產(chǎn)生漫反射,這時(shí)由漫反射反射回的光束,經(jīng)過透鏡聚焦后聚集在激光接收傳感器上,如圖2-9所示:圖2-9激光傳感器原理圖根據(jù)本次比賽尋雙線的賽道特點(diǎn),我們?cè)诩す忸^及激光傳感器的布局上選用了“一”字形布局,并且采用了搖頭的方

17、法,即用舵機(jī)來控制其方向。如圖2-10所示:圖2-10激光頭分布圖本文使用了12個(gè)激光頭,6個(gè)激光接收管。方案中采用74LS138譯碼器和三極管驅(qū)動(dòng),實(shí)現(xiàn)分時(shí)單獨(dú)點(diǎn)亮激光管,防止相鄰激光頭之間的干擾。由于接收管對(duì)特定頻率范圍的光波敏感,故需要將激光的發(fā)射頻率通過PWM調(diào)制到180KHz左右,再經(jīng)過賽道表面漫反射回來,被接收管收到。電路圖2-11如下:圖2-11激光傳感器電路圖圖2-12激光板圖2-13激光驅(qū)動(dòng)板4、舵機(jī)控制除了由學(xué)校統(tǒng)一給的舵機(jī)作為作為控制小車的轉(zhuǎn)向外,我們還增加一個(gè)用來控制激光頭擺向的舵機(jī),單隨動(dòng)舵機(jī)方案是將一個(gè)伺服舵機(jī)固定在車模上,使其轉(zhuǎn)軸向上。同時(shí)將激光傳感器安裝于舵機(jī)上

18、,使其能隨舵機(jī)軸的轉(zhuǎn)動(dòng)而左右轉(zhuǎn)動(dòng),類似于雷達(dá)掃描的工作模式。這種方案下,激光傳感器的檢測(cè)范圍是車模前方的一個(gè)扇形區(qū)域,檢測(cè)范圍大,檢測(cè)距離遠(yuǎn),并且基本不會(huì)丟失黑線。采用這種方案的智能車俗稱為 “搖頭”車。如圖2-14舵機(jī)安裝實(shí)物圖:圖2-14 舵機(jī)安裝圖第三章 系統(tǒng)軟件方案3.1 系統(tǒng)I/O分配對(duì)于STM32F103C8T6單片機(jī),PB0接TIM3-CH3,輸出PWM波,PB1口接TIM3-CH4,輸出反向PWM波, PB8口接前輪打角舵機(jī),PB9接激光排舵機(jī)。3.2主程序及流程圖圖3-1 主程序流程圖3.3主要功能模塊程序3.3.1定時(shí)器PWM波初始化#include<stm32f10

19、x.h>u8 table8=0xff07,0xff0e,0xff15,0xff1c,0xff23,0xff2A,0xff31,0xff38;u8 flage1,flage2,flage3,flage4,flage5,flage6;/u16 h,m;/void TIM3_PWM_Init();void TIM3_PWM_Confige(void);void GPIO_Confige(void); void TIM3_PWM_Confige(void);static void TIM3_PWM_Mode(void);/void key(void);/ void saomiao(void);v

20、oid delay(u8 z)u16 i,j;for(i=0;i<z;i+) for(j=0;j<200;j+);int main(void)u16 h=120,m=120; /unsigned int kkk,jjj;u8 i,flage8, flage9;/CCR3_Val=120;/CCR4_Val=110;/u16 flage=0;/SystemInit();GPIO_Confige();TIM3_PWM_Confige();TIM3_PWM_Mode();/ while(1); flage8=1; flage9=1;while(1) saomiao(); void TIM

21、3_PWM_Confige(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); /使能定時(shí)器3時(shí)鐘 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); /使能定時(shí)器3時(shí)鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); /使能GPIO外設(shè)和AFIO復(fù)用功能模塊時(shí)鐘 /RCC_APB2PeriphClo

22、ckCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); /Timer3部分重映射 TIM3_CH2->PB5 ,TIM_CH3->PB0 /GPIO_PinRemapConfig(GPIO_PartialRemap_TIM2, ENABLE); /Timer3部分重映射 TIM3_CH2->PB5 ,TIM_CH3->PB0 /設(shè)置該引腳為復(fù)用輸出功能,輸出TIM3 CH2的PWM脈沖波形 GPIOB.5

23、 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; /TIM_CH1 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /復(fù)用推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);/初始化GPIO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; /TIM_CH2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode

24、_AF_PP; /復(fù)用推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);/初始化GPIO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; /TIM_CH1 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /復(fù)用推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO

25、_InitStructure);/初始化GPIO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; /TIM_CH2 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; /復(fù)用推挽輸出 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);/初始化GPIO static void TIM3_PWM_Mode(void) TIM_TimeBaseInitTypeDef TIM_TimeBas

26、eStructure; TIM_OCInitTypeDef TIM_OCInitStructure;u16 CCR1_Val = 100; u16 CCR2_Val = 100; u16 CCR3_Val = 500; u16 CCR4_Val = 500; /初始化TIM3 TIM_TimeBaseStructure.TIM_Period = 999; /設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值 TIM_TimeBaseStructure.TIM_Prescaler =0x00E0; /設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值 TIM_TimeBaseStructure.TI

27、M_ClockDivision = 0; /設(shè)置時(shí)鐘分割:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /TIM向上計(jì)數(shù)模式 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); /根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位 /初始化TIM4 TIM_TimeBaseStructure.TIM_Period = 999; /設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值 TIM_TimeB

28、aseStructure.TIM_Prescaler =0X0402; /設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值 TIM_TimeBaseStructure.TIM_ClockDivision = 0; /設(shè)置時(shí)鐘分割:TDTS = Tck_tim TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; /TIM向上計(jì)數(shù)模式 TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); /根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位 /初始化

29、TIM3 Channel2 PWM模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; /選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式1TIM_OCInitStructure.TIM_Pulse = CCR1_Val;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /比較輸出使能TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; /輸出極性:TIM輸出比較極性高TIM_OC3Init(TIM3, &TI

30、M_OCInitStructure); /根據(jù)T指定的參數(shù)初始化外設(shè)TIM3 OC1TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable); TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; /選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2TIM_OCInitStructure.TIM_Pulse = CCR2_Val;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /比較輸出使能TIM_OCInitStructure.TIM_OCPo

31、larity = TIM_OCPolarity_High; /輸出極性:TIM輸出比較極性高TIM_OC2Init(TIM3, &TIM_OCInitStructure); /根據(jù)T指定的參數(shù)初始化外設(shè)TIM3 OC2TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); /使能TIM3在CCR2上的預(yù)裝載寄存器/初始化TIM3 Channel2 PWM模式 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; /選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式1TIM_OCInitStructure.TI

32、M_Pulse = CCR3_Val;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /比較輸出使能TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; /輸出極性:TIM輸出比較極性高TIM_OC3Init(TIM4, &TIM_OCInitStructure); /根據(jù)T指定的參數(shù)初始化外設(shè)TIM3 OC1TIM_OC3PreloadConfig(TIM4,TIM_OCPreload_Enable); TIM_OCInitStructure.TI

33、M_OCMode = TIM_OCMode_PWM1; /選擇定時(shí)器模式:TIM脈沖寬度調(diào)制模式2TIM_OCInitStructure.TIM_Pulse = CCR4_Val;TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; /比較輸出使能TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; /輸出極性:TIM輸出比較極性高TIM_OC4Init(TIM4, &TIM_OCInitStructure); /根據(jù)T指定的參數(shù)初始化外設(shè)TIM3 OC2

34、TIM_OC4PreloadConfig(TIM4, TIM_OCPreload_Enable); /使能TIM3在CCR2上的預(yù)裝載寄存器 TIM_Cmd(TIM3, ENABLE); /使能TIM3 TIM_Cmd(TIM4, ENABLE); /使能TIM3 3.3.2 I/O模塊初始化void GPIO_Confige(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_G

35、PIOB,ENABLE); /RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); /RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_All; /PA口作為激光頭的掃描 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_In

36、itStructure); /PB作為接受 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; /my_gpiof.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; /my_gpiof.GPIO_Speed=GPIO_S

37、peed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; /my_gpiof.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IP

38、D; /my_gpiof.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1; GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD; /my_gpiof.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6; GPIO_InitStru

39、cture.GPIO_Mode=GPIO_Mode_IPD; /my_gpiof.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_14; /PA口作為激光頭的掃描 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13; /PA口作為激光頭的掃描 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;/開啟GPIOA_0引腳 GPIO_InitStructure.GPIO_Mode=GPI

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論