《汽車(chē)計(jì)算機(jī)基礎(chǔ)》 課件 2 汽車(chē)嵌入式技術(shù)基礎(chǔ)_第1頁(yè)
《汽車(chē)計(jì)算機(jī)基礎(chǔ)》 課件 2 汽車(chē)嵌入式技術(shù)基礎(chǔ)_第2頁(yè)
《汽車(chē)計(jì)算機(jī)基礎(chǔ)》 課件 2 汽車(chē)嵌入式技術(shù)基礎(chǔ)_第3頁(yè)
《汽車(chē)計(jì)算機(jī)基礎(chǔ)》 課件 2 汽車(chē)嵌入式技術(shù)基礎(chǔ)_第4頁(yè)
《汽車(chē)計(jì)算機(jī)基礎(chǔ)》 課件 2 汽車(chē)嵌入式技術(shù)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第7單元:閃燈的設(shè)計(jì)與實(shí)現(xiàn)第8單元:開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)第9單元:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈第10單元:利用PWM實(shí)現(xiàn)小燈亮度控制第11單元:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信第12單元:利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表汽車(chē)嵌入式技術(shù)基礎(chǔ)篇

第7單元

閃燈的設(shè)計(jì)與實(shí)現(xiàn)

在汽車(chē)中,燈光除了用于照明,還被廣泛用于狀態(tài)指示(如交通信號(hào)燈、汽車(chē)指示燈、設(shè)備狀態(tài)指示燈等)。在嵌入式系統(tǒng)中,LED小燈是必備的狀態(tài)指示設(shè)備。【單元導(dǎo)讀】

單元學(xué)習(xí)目標(biāo):通過(guò)編程,使微控制器點(diǎn)亮一個(gè)LED小燈,在此基礎(chǔ)上再實(shí)現(xiàn)流水燈的效果。第7單元

閃燈的設(shè)計(jì)與實(shí)現(xiàn)

單元學(xué)習(xí)任務(wù):(1)熟悉嵌入式系統(tǒng)的組成以及嵌入式技術(shù)學(xué)習(xí)方法。(2)熟悉車(chē)規(guī)級(jí)微控制器KEA128的芯片資源和硬件最小系統(tǒng)。(3)理解通用輸入/輸出(GPIO)的通用知識(shí),掌握GPIO底層驅(qū)動(dòng)構(gòu)件頭文件的使用方法。(4)掌握小燈硬件構(gòu)件和軟件構(gòu)件的使用方法。(5)掌握在嵌入式軟件最小系統(tǒng)的框架下實(shí)現(xiàn)LED小燈閃爍的應(yīng)用層程序設(shè)計(jì)方法,并在此基礎(chǔ)上,自行完成流水燈的應(yīng)用層程序設(shè)計(jì)。(6)掌握嵌入式軟件集成開(kāi)發(fā)環(huán)境KeilMDK及目標(biāo)程序下載軟件J-Flash的使用方法,以便為后續(xù)的學(xué)習(xí)奠定良好的基礎(chǔ)。任務(wù)7.1熟悉嵌入式系統(tǒng)的組成及嵌入式技術(shù)學(xué)習(xí)方法7.1.1嵌入式系統(tǒng)的組成

目前,ARM主要有以下3個(gè)系列的內(nèi)核,對(duì)應(yīng)不同的應(yīng)用領(lǐng)域:(1)Cortex-A內(nèi)核的應(yīng)用處理器(ApplicationProcessor,AP),主要面向智能手機(jī)、平板電腦、智能終端等多媒體領(lǐng)域;(2)Cortex-R內(nèi)核的實(shí)時(shí)處理器(Real-TimeProcessor,RTP),主要面向汽車(chē)電子等對(duì)實(shí)時(shí)性要求很高的領(lǐng)域;(3)Cortex-M內(nèi)核的微控制器(MicroControllerUnit,MCU,國(guó)內(nèi)也稱(chēng)為單片機(jī)),主要面向汽車(chē)電子、工業(yè)控制、農(nóng)業(yè)控制、智能儀器儀表、智能家電、機(jī)電產(chǎn)品等測(cè)控領(lǐng)域。

在緒論中,曾介紹過(guò)嵌入式系統(tǒng)的概念。目前,以32位/64位ARM微處理器為核心的嵌入式系統(tǒng)應(yīng)用越來(lái)越廣泛。1、ARM微處理器的分類(lèi)7.1.1嵌入式系統(tǒng)的組成2、MCU的基本結(jié)構(gòu)

MCU的基本含義:在一塊芯片上集成了CPU、ROM、RAM、定時(shí)/計(jì)數(shù)器、中斷系統(tǒng)、看門(mén)狗及通用輸入輸出(GPIO)、模/數(shù)(A/D)轉(zhuǎn)換、數(shù)/模(D/A)轉(zhuǎn)換、串行通信I/O等多種輸入輸出接口的比較完整的數(shù)字處理系統(tǒng)。CPU與其他部件交互是通過(guò)MCU內(nèi)部總線(xiàn)實(shí)現(xiàn)的。任務(wù)7.1熟悉嵌入式系統(tǒng)的組成及嵌入式技術(shù)學(xué)習(xí)方法7.1.1嵌入式系統(tǒng)的組成3、以MCU為核心的嵌入式系統(tǒng)的基本組成任務(wù)7.1熟悉嵌入式系統(tǒng)的組成及嵌入式技術(shù)學(xué)習(xí)方法7.1.2嵌入式系統(tǒng)的知識(shí)體系和學(xué)習(xí)建議任務(wù)7.1熟悉嵌入式系統(tǒng)的組成及嵌入式技術(shù)學(xué)習(xí)方法

嵌入式硬件構(gòu)件設(shè)計(jì)主要包括MCU硬件最小系統(tǒng)(硬件核心構(gòu)件)設(shè)計(jì)和應(yīng)用外設(shè)硬件構(gòu)件(小燈LIGHT、蜂鳴器BZ、開(kāi)關(guān)SW、鍵盤(pán)KB、數(shù)碼管LED、液晶LCD等)設(shè)計(jì)。

嵌入式軟件構(gòu)件設(shè)計(jì)采用分層設(shè)計(jì)思想,自下而上依次是“底層驅(qū)動(dòng)構(gòu)件”、“應(yīng)用外設(shè)軟件構(gòu)件”和“應(yīng)用層軟件構(gòu)件”共3層軟件設(shè)計(jì)。為了實(shí)現(xiàn)嵌入式系統(tǒng)設(shè)計(jì)的可移植和可復(fù)用,大幅度降低嵌入式技術(shù)學(xué)習(xí)難度和開(kāi)發(fā)難度,嵌入式硬件和軟件均需采用“構(gòu)件化”設(shè)計(jì)。

其中底層驅(qū)動(dòng)構(gòu)件和應(yīng)用外設(shè)軟件構(gòu)件都包括對(duì)應(yīng)的.h頭文件和.c源文件,而應(yīng)用層軟件構(gòu)件包括總頭文件includes.h、主程序源文件main.c和中斷服務(wù)程序源文件isr.c。

通用軟件構(gòu)件與CPU和MCU基本無(wú)關(guān),是服務(wù)于以上3層軟件設(shè)計(jì)的。

隨著技術(shù)的發(fā)展,MCU的硬件集成度越來(lái)越高,使得嵌入式硬件設(shè)計(jì)難度不斷降低,因此嵌入式軟件設(shè)計(jì)在整個(gè)嵌入式系統(tǒng)開(kāi)發(fā)中所占的分量越來(lái)越大。7.1.2嵌入式系統(tǒng)的知識(shí)體系和學(xué)習(xí)建議任務(wù)7.1熟悉嵌入式系統(tǒng)的組成及嵌入式技術(shù)學(xué)習(xí)方法

嵌入式軟件設(shè)計(jì)主要采用C語(yǔ)言及少量的匯編語(yǔ)言。

嵌入式軟件設(shè)計(jì)與調(diào)試是在嵌入式硬件的基礎(chǔ)上協(xié)同進(jìn)行的,其過(guò)程是在PC上利用嵌入式軟件開(kāi)發(fā)環(huán)境(如KeilMDK、IAR等)進(jìn)行程序的編輯、編譯和連接,生成工程對(duì)應(yīng)的目標(biāo)代碼;最后將生成的目標(biāo)代碼通過(guò)寫(xiě)入器下載到嵌入式芯片中運(yùn)行與調(diào)試。MCU寫(xiě)入器任務(wù)7.2熟悉KEA128資源和硬件最小系統(tǒng)KinetisEA(簡(jiǎn)稱(chēng)KEA)系列MCU是恩智浦公司開(kāi)發(fā)的基于ARMCortex-M0+(簡(jiǎn)稱(chēng)CM0+)內(nèi)核的車(chē)規(guī)級(jí)MCU。任務(wù)7.2熟悉KEA128資源和硬件最小系統(tǒng)

片內(nèi)Flash區(qū)(0x0000_0000~0x0001_FFFF),共128KB,一般被用來(lái)存放中斷向量、程序代碼、常數(shù)等,其中前192B為中斷向量表(中斷函數(shù)的入口地址)。

片內(nèi)RAM區(qū)(0x1FFF_F000~0x2000_2FFF),共16KB,一般被用來(lái)存儲(chǔ)全局變量、靜態(tài)變量、臨時(shí)變量(堆??臻g)等。1、KEA128的存儲(chǔ)映像

KEA128把CM0+內(nèi)核之外的模塊用類(lèi)似存儲(chǔ)器編址的方式統(tǒng)一分配地址。在4GB的存儲(chǔ)映像空間內(nèi),分布著片內(nèi)Flash、RAM、系統(tǒng)配置寄存器及其他外設(shè)等,以便CPU通過(guò)直接地址進(jìn)行訪(fǎng)問(wèn)。任務(wù)7.2熟悉KEA128資源和硬件最小系統(tǒng)2、KEA128的引腳功能

從需求和供給的角度,把MCU的引腳分為硬件最小系統(tǒng)引腳和I/O端口資源類(lèi)引腳兩大類(lèi)。(1)硬件最小系統(tǒng)引腳:需要服務(wù)的引腳,包括電源、復(fù)位、晶振、程序?qū)懭虢涌冢⊿WD)等引腳。任務(wù)7.2熟悉KEA128資源和硬件最小系統(tǒng)2、KEA128的引腳功能

從需求和供給的角度,把MCU的引腳分為硬件最小系統(tǒng)引腳和I/O端口資源類(lèi)引腳兩大類(lèi)。(2)I/O端口資源類(lèi)引腳:對(duì)外提供服務(wù)。

I/O引腳一般具有多個(gè)復(fù)用功能,詳見(jiàn)附錄D的KEA128引腳功能分配表,在實(shí)際應(yīng)用時(shí)只能使用其中的一個(gè)功能。在嵌入式系統(tǒng)設(shè)計(jì)中,需要根據(jù)所使用的外設(shè)(含片內(nèi)外設(shè))對(duì)MCU的引腳資源進(jìn)行統(tǒng)籌規(guī)劃,以免多個(gè)外設(shè)使用相同的引腳而相互沖突。任務(wù)7.2熟悉KEA128資源和硬件最小系統(tǒng)3、KEA128的硬件最小系統(tǒng)

MCU硬件最小系統(tǒng)是可以使MCU內(nèi)部程序正常運(yùn)行的最小規(guī)模的電路,主要包括MCU和電源、晶振、復(fù)位、寫(xiě)入調(diào)試器接口等外圍電路。見(jiàn)圖7-6。

需要說(shuō)明的是,若使用MCU內(nèi)部的時(shí)鐘作為系統(tǒng)時(shí)鐘源,則外部晶振電路可省略。【課后作業(yè)】同步練習(xí)7-1:鞏固知識(shí)。任務(wù)7.3

掌握GPIO底層驅(qū)動(dòng)構(gòu)件的使用方法7.3.1GPIO的通用知識(shí)1、GPIO概念

GPIO(GeneralPurposeInputOutput

),通用輸入/輸出,它是I/O的最基本形式。

MCU的大多數(shù)GPIO引腳可以通過(guò)編程來(lái)設(shè)定其工作方式為輸入或輸出,稱(chēng)之為雙向GPIO。

某個(gè)引腳作為通用輸入引腳,MCU可以通過(guò)讀取其內(nèi)部寄存器的值“1”或“0”,以確定該引腳的輸入狀態(tài)是高電平還是低電平,即開(kāi)關(guān)量輸入。

某個(gè)引腳作為通用輸出引腳,MCU可以通過(guò)向其內(nèi)部寄存器寫(xiě)“1”或“0”,以控制該引腳輸出高電平或低電平,即開(kāi)關(guān)量輸出。7.3.1GPIO的通用知識(shí)2、上拉電阻、下拉電阻與輸入引腳的基本接法任務(wù)7.3

掌握GPIO底層驅(qū)動(dòng)構(gòu)件的使用方法

若MCU的某個(gè)引腳通過(guò)一個(gè)電阻接電源(VCC),則該電阻被稱(chēng)為“上拉電阻”。

若MCU的某個(gè)引腳通過(guò)一個(gè)電阻接地(GND),則該電阻被稱(chēng)為“下拉電阻”。7.3.1GPIO的通用知識(shí)3、輸出引腳的基本接法任務(wù)7.3

掌握GPIO底層驅(qū)動(dòng)構(gòu)件的使用方法

作為通用輸出引腳,MCU內(nèi)部程序向該引腳輸出高電平或低電平驅(qū)動(dòng)外部設(shè)備工作,即開(kāi)關(guān)量輸出。輸出引腳O1和O2分別采用了直接驅(qū)動(dòng)和放大驅(qū)動(dòng)方式。任務(wù)7.3

掌握GPIO底層驅(qū)動(dòng)構(gòu)件的使用方法7.3.2KEA128的GPIO底層驅(qū)動(dòng)構(gòu)件及使用方法

為了實(shí)現(xiàn)程序的可移植和可復(fù)用,減小重復(fù)勞動(dòng),MCU底層驅(qū)動(dòng)程序封裝成構(gòu)件。GPIO底層驅(qū)動(dòng)構(gòu)件由gpio.h頭文件和gpio.c源文件組成,若要使用GPIO底層驅(qū)動(dòng)構(gòu)件,只需將這兩個(gè)文件添加到所建工程的04_Driver(MCU底層驅(qū)動(dòng)構(gòu)件)文件夾中,即可實(shí)現(xiàn)對(duì)GPIO引腳的操作。見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

其中,gpio.h頭文件主要包括相關(guān)頭文件的包含、一些必要的宏定義、對(duì)外接口函數(shù)的聲明,而gpio.c源文件則是對(duì)外接口函數(shù)的具體實(shí)現(xiàn),初學(xué)者不必深究。

用戶(hù)只要熟悉gpio.h頭文件的內(nèi)容,即可使用GPIO底層驅(qū)動(dòng)構(gòu)件進(jìn)行編程,實(shí)現(xiàn)通過(guò)GPIO對(duì)不同外設(shè)進(jìn)行檢測(cè)或控制的功能(如檢測(cè)開(kāi)關(guān)的狀態(tài)、控制小燈的亮滅等)。任務(wù)7.4小燈構(gòu)件化設(shè)計(jì)及閃燈的實(shí)現(xiàn)

為了實(shí)現(xiàn)嵌入式系統(tǒng)設(shè)計(jì)在不同MCU和不同應(yīng)用場(chǎng)合中的可移植和可復(fù)用,降低嵌入式技術(shù)學(xué)習(xí)難度和開(kāi)發(fā)難度,嵌入式硬件和軟件均需采用“構(gòu)件化”設(shè)計(jì)?,F(xiàn)以小燈構(gòu)件設(shè)計(jì)為例,說(shuō)明嵌入式硬件構(gòu)件和軟件構(gòu)件的設(shè)計(jì)方法。7.4.1小燈硬件構(gòu)件和軟件構(gòu)件的設(shè)計(jì)及使用方法1、小燈硬件構(gòu)件及使用方法a)小燈硬件構(gòu)件b)小燈硬件構(gòu)件與MCU的引腳連接

圖中虛線(xiàn)框內(nèi)的粗體標(biāo)識(shí)為硬件構(gòu)件的接口注釋?zhuān)员阌诶斫庠摻涌诘暮x和功能;虛線(xiàn)框外的正體標(biāo)識(shí)為硬件構(gòu)件的接口網(wǎng)標(biāo),具有電氣連接特性,表示硬件構(gòu)件的接口與MCU的引腳相連接。硬件構(gòu)件在不同應(yīng)用系統(tǒng)中移植和復(fù)用時(shí),僅需修改接口網(wǎng)標(biāo)。7.4.1小燈硬件構(gòu)件和軟件構(gòu)件的設(shè)計(jì)及使用方法2、小燈軟件構(gòu)件的設(shè)計(jì)及使用方法

任務(wù)7.4小燈構(gòu)件化設(shè)計(jì)及閃燈的實(shí)現(xiàn)

小燈軟件構(gòu)件由

light.h

頭文件

light.c

源文件組成,若要使用小燈軟件構(gòu)件,只需將這兩個(gè)文件添加到所建工程的05_App(應(yīng)用外設(shè)軟件構(gòu)件)文件夾中即可實(shí)現(xiàn)對(duì)小燈的控制。

其中,light.h

頭文件主要包括相關(guān)頭文件的包含、小燈硬件構(gòu)件相關(guān)的宏定義、小燈構(gòu)件對(duì)外接口函數(shù)的聲明。light.c

源文件是小燈構(gòu)件對(duì)外接口函數(shù)的具體實(shí)現(xiàn)。見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx用戶(hù)只要熟悉light.h頭文件的內(nèi)容,即可使用小燈軟件構(gòu)件進(jìn)行編程。7.4.2嵌入式軟件最小系統(tǒng)設(shè)計(jì)——實(shí)現(xiàn)閃燈1、嵌入式軟件最小系統(tǒng)任務(wù)7.4小燈構(gòu)件化設(shè)計(jì)及閃燈的實(shí)現(xiàn)

在嵌入式基礎(chǔ)實(shí)踐中,一般以“MCU控制小燈閃爍”作為入門(mén)實(shí)驗(yàn),對(duì)應(yīng)的程序框架稱(chēng)為“嵌入式軟件最小系統(tǒng)”(具體解釋詳見(jiàn)表7-5)。

在此框架下可通過(guò)添加其他軟件構(gòu)件和修改應(yīng)用層程序(工程源程序)完成不同功能的軟件設(shè)計(jì)。

對(duì)初學(xué)者,學(xué)習(xí)重點(diǎn)是:①熟悉04_Driver(MCU底層驅(qū)動(dòng)構(gòu)件)、05_App(應(yīng)用外設(shè)軟件構(gòu)件)和

06_Soft(通用軟件構(gòu)件)這幾個(gè)文件夾中的頭文件內(nèi)容,掌握對(duì)外接口函數(shù)的調(diào)用方法;②根據(jù)系統(tǒng)功能需求,進(jìn)行應(yīng)用層程序設(shè)計(jì)和優(yōu)化,即設(shè)計(jì)07_Source(應(yīng)用層軟件構(gòu)件)文件夾中的文件。見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

其中,“04底層驅(qū)動(dòng)構(gòu)件”、“05應(yīng)用外設(shè)軟件構(gòu)件”、“06通用軟件構(gòu)件”、“07應(yīng)用層軟件構(gòu)件”的文件都是由本構(gòu)件的.h和.c文件組成。

7.4.2嵌入式軟件最小系統(tǒng)設(shè)計(jì)——實(shí)現(xiàn)閃燈2、閃燈的應(yīng)用層程序設(shè)計(jì)任務(wù)7.4小燈構(gòu)件化設(shè)計(jì)及閃燈的實(shí)現(xiàn)

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計(jì)07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實(shí)現(xiàn)小燈閃爍的效果。1)工程總頭文件includes.h:包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

小燈初始化,在主循環(huán)中實(shí)現(xiàn)閃燈效果在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx7.4.3程序的下載與測(cè)試1.編譯工程文件,生成MCU可執(zhí)行的代碼文件(.hex文件)任務(wù)7.4小燈構(gòu)件化設(shè)計(jì)及閃燈的實(shí)現(xiàn)2.將編譯生成的.hex文件下載至目標(biāo)MCU中,運(yùn)行程序【同步練習(xí)7-2】請(qǐng)通過(guò)修改主程序的代碼,分別完成:(1)改變小燈閃爍的頻率;(2)控制其他小燈閃爍;(3)實(shí)現(xiàn)流水燈的效果。第7單元:閃燈的設(shè)計(jì)與實(shí)現(xiàn)第8單元:開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)第9單元:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈第10單元:利用PWM實(shí)現(xiàn)小燈亮度控制第11單元:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信第12單元:利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表汽車(chē)嵌入式技術(shù)基礎(chǔ)篇

第8單元

開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)【單元導(dǎo)讀】

在汽車(chē)上有很多開(kāi)關(guān)(switch),可以通過(guò)開(kāi)關(guān)控制用電設(shè)備。例如,在大眾車(chē)系中,汽車(chē)ECU(J519)通過(guò)獲取車(chē)燈開(kāi)關(guān)的狀態(tài)而控制對(duì)應(yīng)的車(chē)燈。

單元學(xué)習(xí)任務(wù)和目標(biāo):在第7單元的基礎(chǔ)上,實(shí)現(xiàn)通過(guò)指示燈反映開(kāi)關(guān)狀態(tài)的功能。在本單元中,重點(diǎn)掌握開(kāi)關(guān)硬件構(gòu)件和開(kāi)關(guān)軟件構(gòu)件的設(shè)計(jì)及使用方法,并在此基礎(chǔ)上學(xué)會(huì)開(kāi)關(guān)檢測(cè)與控制功能的應(yīng)用層程序設(shè)計(jì)方法。任務(wù)8.1掌握開(kāi)關(guān)硬件構(gòu)件和軟件構(gòu)件的設(shè)計(jì)及使用方法1、開(kāi)關(guān)硬件構(gòu)件的設(shè)計(jì)及使用方法a)開(kāi)關(guān)硬件構(gòu)件b)開(kāi)關(guān)硬件構(gòu)件與MCU的引腳連接2、開(kāi)關(guān)軟件構(gòu)件的設(shè)計(jì)及使用方法

任務(wù)8.1掌握開(kāi)關(guān)硬件構(gòu)件和軟件構(gòu)件的設(shè)計(jì)及使用方法

開(kāi)關(guān)軟件構(gòu)件由

sw.h頭文件

sw.c

源文件組成,若要使用開(kāi)關(guān)軟件構(gòu)件,只需將這兩個(gè)文件添加到所建工程的05_App(應(yīng)用外設(shè)軟件構(gòu)件)文件夾中,即可實(shí)現(xiàn)對(duì)開(kāi)關(guān)的操作。

其中,sw.h

頭文件主要包括相關(guān)頭文件的包含、開(kāi)關(guān)硬件構(gòu)件相關(guān)的宏定義、開(kāi)關(guān)構(gòu)件對(duì)外接口函數(shù)的聲明。sw.c

源文件是開(kāi)關(guān)構(gòu)件對(duì)外接口函數(shù)的具體實(shí)現(xiàn)。見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx用戶(hù)只要熟悉sw.h

頭文件的內(nèi)容,即可使用開(kāi)關(guān)軟件構(gòu)件進(jìn)行編程。任務(wù)8.2開(kāi)關(guān)狀態(tài)指示燈的應(yīng)用層程序設(shè)計(jì)

利用小燈軟件構(gòu)件和開(kāi)關(guān)軟件構(gòu)件,編程實(shí)現(xiàn)開(kāi)關(guān)狀態(tài)檢測(cè)與控制功能:開(kāi)關(guān)SW1閉合時(shí),小燈LIGHT1亮;SW1斷開(kāi)時(shí),小燈LIGHT1滅。任務(wù)8.2開(kāi)關(guān)狀態(tài)指示燈的應(yīng)用層程序設(shè)計(jì)見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計(jì)07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實(shí)現(xiàn)開(kāi)關(guān)狀態(tài)檢測(cè)與控制功能。1)工程總頭文件includes.h:包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

初始化,在主循環(huán)中查詢(xún)開(kāi)關(guān)狀態(tài),并控制小燈亮、滅【同步練習(xí)8】

實(shí)現(xiàn):多路開(kāi)關(guān)狀態(tài)指示功能,即4個(gè)開(kāi)關(guān)SW1、SW2、SW3、SW4的狀態(tài)分別由小燈LIGHT1、LIGHT2、LIGHT3、LIGHT4指示。第7單元:閃燈的設(shè)計(jì)與實(shí)現(xiàn)第8單元:開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)第9單元:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈第10單元:利用PWM實(shí)現(xiàn)小燈亮度控制第11單元:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信第12單元:利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表汽車(chē)嵌入式技術(shù)基礎(chǔ)篇

第9單元利用定時(shí)中斷實(shí)現(xiàn)頻閃燈

在第7單元中,利用軟件延時(shí)Delay_ms函數(shù)(循環(huán)計(jì)數(shù))實(shí)現(xiàn)閃燈的效果。

該方式有兩大缺點(diǎn):

①軟件延時(shí)一般用于粗略延時(shí)的場(chǎng)合;

②執(zhí)行延時(shí)子程序期間,CPU一直被占用而不能做其他事情,從而降低了CPU的利用率?!締卧獙?dǎo)讀】第9單元利用定時(shí)中斷實(shí)現(xiàn)頻閃燈

為此,可使用MCU內(nèi)部可編程的定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)延時(shí)。用戶(hù)根據(jù)需要設(shè)置定時(shí)時(shí)間,并啟動(dòng)定時(shí)/計(jì)數(shù)器計(jì)數(shù),當(dāng)定時(shí)時(shí)間到時(shí),它將自動(dòng)產(chǎn)生一個(gè)定時(shí)輸出信號(hào)(通常是中斷請(qǐng)求信號(hào))告知CPU,使CPU轉(zhuǎn)去執(zhí)行定時(shí)中斷服務(wù)程序,從而實(shí)現(xiàn)某些定時(shí)功能(如改變小燈的狀態(tài))。定時(shí)/計(jì)數(shù)器在計(jì)數(shù)期間,與CPU并行工作,不占用CPU的工作時(shí)間。該方式通過(guò)簡(jiǎn)單的程序設(shè)置即可實(shí)現(xiàn)準(zhǔn)確的定時(shí)。單元學(xué)習(xí)任務(wù)和目標(biāo):(1)理解定時(shí)器的定時(shí)原理。(2)理解中斷的通用知識(shí),熟知使用非內(nèi)核中斷的嵌入式應(yīng)用層程序構(gòu)成。(3)熟悉MCU內(nèi)部定時(shí)器的功能特性,掌握MCU內(nèi)部定時(shí)器底層驅(qū)動(dòng)構(gòu)件頭文件的使用方法。(4)學(xué)會(huì)利用MCU內(nèi)部定時(shí)中斷實(shí)現(xiàn)頻閃燈或流水燈的應(yīng)用層程序設(shè)計(jì)方法。任務(wù)9.1理解中斷的通用知識(shí)1、中斷的含義

中斷,是指MCU在正常運(yùn)行程序時(shí),由于MCU內(nèi)核異常(內(nèi)核中斷)或

MCU各功能模塊發(fā)出請(qǐng)求事件(非內(nèi)核中斷),使MCU停止正在運(yùn)行的程序,而轉(zhuǎn)去處理異常(使芯片復(fù)位或使MCU做出其他處理)或

執(zhí)行處理內(nèi)核外部事件的程序(中斷服務(wù)程序)。2、中斷源

引起MCU中斷的事件稱(chēng)為中斷源。MCU的中斷源分為兩類(lèi):內(nèi)核中斷源和非內(nèi)核中斷源。KEA128的中斷源見(jiàn)表9-1。任務(wù)9.1理解中斷的通用知識(shí)4、使用非內(nèi)核中斷的嵌入式應(yīng)用層程序設(shè)計(jì)方法

(1)在main.c文件的主程序中,進(jìn)行非內(nèi)核中斷模塊初始化,并使能模塊中斷(使CPU能夠響應(yīng)模塊發(fā)出的中斷請(qǐng)求,轉(zhuǎn)去執(zhí)行中斷服務(wù)函數(shù))。

(2)在isr.c文件中,設(shè)計(jì)中斷服務(wù)程序函數(shù),在中斷服務(wù)函數(shù)中實(shí)現(xiàn)某些中斷功能(如改變小燈狀態(tài)等)。3、使用非內(nèi)核中斷的嵌入式應(yīng)用層程序構(gòu)成

使用中斷的嵌入式應(yīng)用層程序,共有兩條獨(dú)立的程序運(yùn)行線(xiàn):

(1)main.c文件中的主程序運(yùn)行線(xiàn);

(2)isr.c文件中的中斷服務(wù)程序運(yùn)行線(xiàn)。任務(wù)9.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈定時(shí)器本質(zhì)上是一個(gè)對(duì)計(jì)數(shù)時(shí)鐘進(jìn)行周期統(tǒng)計(jì)的計(jì)數(shù)器。

上圖中,計(jì)數(shù)器采用增1計(jì)數(shù)。計(jì)數(shù)器從初值0開(kāi)始計(jì)數(shù),每經(jīng)過(guò)一個(gè)計(jì)數(shù)時(shí)鐘周期,計(jì)數(shù)器的值就加1,若計(jì)數(shù)器的值達(dá)到終值4,則在下一個(gè)時(shí)鐘到來(lái)時(shí),計(jì)數(shù)器溢出,計(jì)數(shù)器的值恢復(fù)至初值0,然后進(jìn)行下一輪的加1計(jì)數(shù),如此重復(fù)。

定時(shí)器每一輪的定時(shí)時(shí)間t=

計(jì)數(shù)次數(shù)×計(jì)數(shù)時(shí)鐘周期

上圖中,一輪的計(jì)數(shù)次數(shù)是5,若計(jì)數(shù)時(shí)鐘頻率為1kHz(計(jì)數(shù)時(shí)鐘周期為1ms),則一輪的定時(shí)時(shí)間為5ms。任務(wù)9.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈對(duì)于n位(二進(jìn)制)定時(shí)/計(jì)數(shù)器,計(jì)數(shù)器的終值最大值為2n-1,結(jié)合上圖,定時(shí)/計(jì)數(shù)器一輪計(jì)數(shù)次數(shù)最大值為2n。n位定時(shí)/計(jì)數(shù)器一輪的最大定時(shí)時(shí)間t:

t=2n×計(jì)數(shù)時(shí)鐘周期

=2n/計(jì)數(shù)時(shí)鐘頻率

f若

f=

時(shí)鐘源頻率/分頻系數(shù),則

t=2n/(時(shí)鐘源頻率/分頻系數(shù))

【同步練習(xí)9-1】計(jì)算定時(shí)時(shí)間范圍。

任務(wù)9.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈

當(dāng)計(jì)數(shù)器溢出時(shí),定時(shí)器可向CPU發(fā)出中斷請(qǐng)求信號(hào),使CPU暫停當(dāng)前的工作,而轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,在中斷服務(wù)程序中實(shí)現(xiàn)具體的定時(shí)功能(如改變小燈的狀態(tài)等)。任務(wù)9.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈

KEA128芯片的FTM(FlexTimer)是一個(gè)具有基本定時(shí)、脈寬調(diào)制(PWM)、輸入捕捉和輸出比較等多種功能的綜合定時(shí)器。KEA128芯片中有3個(gè)FTM模塊,分別是FTM0、FTM1和FTM2,它們均是16位定時(shí)器。本單元只學(xué)習(xí)FTM模塊的基本定時(shí)功能,其PWM功能將在第10單元介紹。任務(wù)9.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈9.2.1FTM基本定時(shí)底層驅(qū)動(dòng)構(gòu)件的使用方法

FTM基本定時(shí)底層驅(qū)動(dòng)構(gòu)件由ftm_timer.h頭文件和ftm_timer.c源文件組成,若要使用FTM基本定時(shí)底層驅(qū)動(dòng)構(gòu)件,只需將這兩個(gè)文件添加到所建工程的04_Driver(MCU底層驅(qū)動(dòng)構(gòu)件)文件夾中即可實(shí)現(xiàn)對(duì)FTM定時(shí)器的操作。見(jiàn)工程文件:..EmbededSource\03-Software\KEA128\KEA128.uvprojx

用戶(hù)只要熟悉ftm_timer.h頭文件的內(nèi)容,即可使用FTM基本定時(shí)底層驅(qū)動(dòng)構(gòu)件進(jìn)行編程。

其中,ftm_timer.h頭文件主要包括相關(guān)頭文件的包含、相關(guān)的宏定義、對(duì)外接口函數(shù)的聲明;而ftm_timer.c源文件是對(duì)外接口函數(shù)的具體實(shí)現(xiàn),初學(xué)者不必深究。任務(wù)9.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈9.2.2利用FTM定時(shí)中斷實(shí)現(xiàn)頻閃燈的應(yīng)用層程序設(shè)計(jì)

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計(jì)07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實(shí)現(xiàn)小燈閃爍的效果。1)工程總頭文件includes.h:

包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

定義全局變量;初始化;使能定時(shí)器中斷;

在主循環(huán)中,根據(jù)全局變量的值,改變小燈的狀態(tài)在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx3)中斷服務(wù)程序源文件isr.c:聲明全局變量;實(shí)現(xiàn)定時(shí)功能(更新全局變量的值)

【同步練習(xí)9-2】通過(guò)修改main.c的代碼,分別完成:

①改變小燈閃爍的頻率。

②控制其他小燈閃爍。

③實(shí)現(xiàn)流水燈的效果。汽車(chē)計(jì)算機(jī)基礎(chǔ)

配套教材:索明何、汪東明

等編著多資源、立體化、新形態(tài)教材《汽車(chē)計(jì)算機(jī)基礎(chǔ)》機(jī)械工業(yè)出版社,2023ISBN:978-7-111-72416-2

本書(shū)結(jié)合汽車(chē)技術(shù)電動(dòng)化、智能化、網(wǎng)聯(lián)化、共享化的“四化”發(fā)展和汽車(chē)類(lèi)專(zhuān)業(yè)特點(diǎn),按照“由簡(jiǎn)到難、循序漸進(jìn)”的原則,共設(shè)置了“緒論”“汽車(chē)程序設(shè)計(jì)基礎(chǔ)篇”“汽車(chē)嵌入式技術(shù)基礎(chǔ)篇”“車(chē)載網(wǎng)絡(luò)技術(shù)基礎(chǔ)篇”4部分內(nèi)容。通過(guò)本書(shū)的學(xué)習(xí),可以從整體上加深理解汽車(chē)電子控制系統(tǒng)的組成和工作原理,對(duì)汽車(chē)電子控制技術(shù)和智能網(wǎng)聯(lián)汽車(chē)技術(shù)學(xué)習(xí)奠定良好的汽車(chē)計(jì)算機(jī)基礎(chǔ)。

本書(shū)特色:任務(wù)驅(qū)動(dòng),理實(shí)一體,學(xué)以致用。內(nèi)容組織由簡(jiǎn)到難、循序漸進(jìn),靈活采用對(duì)比法、類(lèi)比法、啟發(fā)法、實(shí)驗(yàn)法等多種教學(xué)方法,有效降低教學(xué)難度和學(xué)習(xí)難度。

本書(shū)可作為高職院校汽車(chē)類(lèi)專(zhuān)業(yè)的汽車(chē)計(jì)算機(jī)基礎(chǔ)教材,也可供從事相關(guān)技術(shù)的工程人員參考。第7單元:閃燈的設(shè)計(jì)與實(shí)現(xiàn)第8單元:開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)第9單元:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈第10單元:利用PWM實(shí)現(xiàn)小燈亮度控制第11單元:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信第12單元:利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表汽車(chē)嵌入式技術(shù)基礎(chǔ)篇

第10單元利用PWM實(shí)現(xiàn)小燈亮度控制

脈寬調(diào)制(PulseWidthModulation,PWM)信號(hào)是一個(gè)高電平和低電平重復(fù)交替的輸出信號(hào),PWM廣泛應(yīng)用于電動(dòng)機(jī)轉(zhuǎn)速控制、車(chē)燈亮度控制等領(lǐng)域。當(dāng)車(chē)燈開(kāi)關(guān)閉合時(shí),如果MCU通過(guò)PWM控制車(chē)燈逐漸點(diǎn)亮,則可以延長(zhǎng)車(chē)燈的壽命?!締卧獙?dǎo)讀】

單元學(xué)習(xí)任務(wù)和目標(biāo):首先理解PWM的通用知識(shí),包括PWM的相關(guān)概念、技術(shù)指標(biāo)及應(yīng)用場(chǎng)合;然后掌握PWM底層驅(qū)動(dòng)構(gòu)件頭文件的使用方法;最后學(xué)會(huì)利用PWM實(shí)現(xiàn)小燈亮度控制的應(yīng)用層程序設(shè)計(jì)方法。任務(wù)10.1理解PWM的通用知識(shí)

PWM信號(hào)是一個(gè)高電平和低電平重復(fù)交替的輸出信號(hào)。

目前經(jīng)常使用的PWM信號(hào)主要是通過(guò)MCU編程實(shí)現(xiàn)的。利用MCU輸出PWM信號(hào)時(shí),需要一個(gè)產(chǎn)生PWM信號(hào)的時(shí)鐘源,設(shè)其周期為T(mén)CLK。1、

PWM的基本概念與技術(shù)指標(biāo)任務(wù)10.1理解PWM的通用知識(shí)1、

PWM的基本概念與技術(shù)指標(biāo)(1)周期:持續(xù)的時(shí)鐘周期個(gè)數(shù)。

TPWM=8

TCLK(2)脈寬:一個(gè)PWM周期內(nèi)PWM信號(hào)

處于高電平的時(shí)間。

圖(a):2

TCLK

圖(b):4

TCLK

圖(c):6

TCLK(3)占空比:脈寬/周期,百分比

圖(a):25%

圖(b):50%

圖(c):75%任務(wù)10.1理解PWM的通用知識(shí)(4)極性:決定了PWM信號(hào)的有效電平

正極性:PWM信號(hào)的有效電平為高電平,平時(shí)電平(空閑電平)為低電平;

負(fù)極性:PWM信號(hào)的有效電平為低電平,平時(shí)電平(空閑電平)為高電平。1、

PWM的基本概念與技術(shù)指標(biāo)任務(wù)10.1理解PWM的通用知識(shí)2、

PWM的應(yīng)用場(chǎng)合

(1)利用PWM為其他設(shè)備產(chǎn)生類(lèi)似于時(shí)鐘的信號(hào)。例如,PWM可用來(lái)控制燈以一定的頻率閃爍。

(2)利用PWM控制輸入到某個(gè)設(shè)備的平均電流或電壓。例如,PWM可用來(lái)控制直流電動(dòng)機(jī)轉(zhuǎn)速。

(3)利用PWM控制命令字編碼。例如,用不同的脈寬代表不同的命令,控制無(wú)線(xiàn)遙控車(chē)做不同的動(dòng)作(左轉(zhuǎn)、右轉(zhuǎn)、前進(jìn)等)。1、KEA128的FTM_PWM模塊

在KEA128芯片中,可利用FTM定時(shí)器實(shí)現(xiàn)PWM功能,其中FTM的FTM0和FTM1各有2個(gè)通道,F(xiàn)TM2有6個(gè)通道??梢耘渲脼镕TM通道的引腳見(jiàn)表10-1,具體使用的引腳,可參照f(shuō)tm_pwm.h頭文件中的相關(guān)宏定義。任務(wù)10.2掌握FTM_PWM底層驅(qū)動(dòng)構(gòu)件的使用方法任務(wù)10.2掌握FTM_PWM底層驅(qū)動(dòng)構(gòu)件的使用方法2、KEA128的FTM_PWM底層驅(qū)動(dòng)構(gòu)件及使用方法【同步練習(xí)10-1】計(jì)算PWM信號(hào)周期的合理范圍。

FTM_PWM底層驅(qū)動(dòng)構(gòu)件由ftm_pwm.h頭文件和ftm_pwm.c源文件組成,若要使用FTM_PWM底層驅(qū)動(dòng)構(gòu)件,只需將這兩個(gè)文件添加到所建工程的04_Driver(MCU底層驅(qū)動(dòng)構(gòu)件)文件夾中,即可實(shí)現(xiàn)對(duì)FTM_PWM的操作。見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

其中,ftm_pwm.h頭文件主要包括相關(guān)頭文件的包含、一些必要的宏定義、對(duì)外接口函數(shù)的聲明,而ftm_pwm.c源文件則是對(duì)外接口函數(shù)的具體實(shí)現(xiàn),初學(xué)者不必深究。

用戶(hù)只要熟悉ftm_pwm.h頭文件的內(nèi)容,即可使用FTM_PWM底層驅(qū)動(dòng)構(gòu)件進(jìn)行編程。任務(wù)10.3利用PWM實(shí)現(xiàn)小燈亮度控制的應(yīng)用層程序設(shè)計(jì)

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計(jì)07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實(shí)現(xiàn):利用PWM控制與PWM通道引腳相連接的小燈的亮度。1)工程總頭文件includes.h:

包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

初始化(PWM)在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx【同步練習(xí)10-1】

(1)將ftm_pwm_init函數(shù)中的占空比參數(shù)依次改為100、75、50、25、0,分別運(yùn)行其對(duì)應(yīng)的程序,觀(guān)察小燈亮度的變化情況。

(2)使用ftm_pwm.h文件中的ftm_pwm_update函數(shù),分別實(shí)現(xiàn)頻閃燈和小燈逐漸變亮的效果。第7單元:閃燈的設(shè)計(jì)與實(shí)現(xiàn)第8單元:開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)第9單元:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈第10單元:利用PWM實(shí)現(xiàn)小燈亮度控制第11單元:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信第12單元:利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表汽車(chē)嵌入式技術(shù)基礎(chǔ)篇

第11單元利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信

為了實(shí)現(xiàn)上位機(jī)PC和下位機(jī)MCU之間的通信,可采用UART、USB、Ethernet等多種通信方式,其中UART是最簡(jiǎn)單的通信方式,也是學(xué)習(xí)其他通信方式的基礎(chǔ)。

單元學(xué)習(xí)任務(wù)和目標(biāo):

(1)理解UART的通用知識(shí),包括UART硬件、UART通信的數(shù)據(jù)格式和數(shù)據(jù)通信的波特率。(2)掌握UART底層驅(qū)動(dòng)構(gòu)件頭文件的使用方法。(3)掌握PC和MCU的串口通信與調(diào)試方法,重點(diǎn)掌握UART應(yīng)用層程序設(shè)計(jì)方法,包括主程序設(shè)計(jì)和UART接收中斷服務(wù)程序設(shè)計(jì)。(4)掌握通過(guò)UART實(shí)現(xiàn)利用格式化輸出函數(shù)(printf)向PC輸出數(shù)據(jù)的方法?!締卧獙?dǎo)讀】任務(wù)11.1理解UART的通用知識(shí)

UART(UniversalAsynchronousReceiver/Transmitter,通用異步收發(fā)器)可實(shí)現(xiàn)異步串行通信功能。有時(shí)還將UART稱(chēng)為SCI(SerialCommunicationInterface,串行通信接口),簡(jiǎn)稱(chēng)串口。1、UART硬件

MCU的UART通信一般只需3根線(xiàn):發(fā)送線(xiàn)TxD、接收線(xiàn)RxD和地線(xiàn)GND。

MCU可通過(guò)TTL-USB轉(zhuǎn)換器連接到PC的USB接口,在PC上安裝相應(yīng)的驅(qū)動(dòng)軟件,就可實(shí)現(xiàn)MCU與PC之間的串口通信。2、UART通信的數(shù)據(jù)幀格式

UART通信的特點(diǎn):數(shù)據(jù)以字節(jié)為單位,按位的順序(如最低位優(yōu)先)從一條傳輸線(xiàn)上發(fā)送出去。

(1)發(fā)送1位起始位——邏輯“0”,用于通知接收方通信同步。

(2)依次發(fā)送8位數(shù)據(jù)D0~D7(低位在前、高位在后)。

(3)發(fā)送1位奇偶校驗(yàn)位(可選),便于接收方檢測(cè)數(shù)據(jù)發(fā)送是否正確。

(4)發(fā)送1~2位停止位——邏輯“1”,用于通知接收方該幀數(shù)據(jù)已發(fā)送完成。

若發(fā)送方無(wú)數(shù)據(jù)發(fā)送,則通信線(xiàn)路上保持空閑狀態(tài)——邏輯“1”。若發(fā)送方發(fā)送下一個(gè)UART數(shù)據(jù)幀,則要重新發(fā)送起始位,然后發(fā)送一字節(jié)的新數(shù)據(jù)。任務(wù)11.1理解UART的通用知識(shí)3、數(shù)據(jù)通信的波特率

波特率:每秒鐘傳輸二進(jìn)制數(shù)碼的位數(shù),單位是bit/s。波特率越高,數(shù)據(jù)傳輸?shù)乃俣染驮娇?。只有通信雙方的波特率相同時(shí)才可以正常通信。

串口通信常用的波特率:1200、1800、2400、4800、9600、19200、38400、57600、115200等(bit/s)。任務(wù)11.2掌握UART底層驅(qū)動(dòng)構(gòu)件的使用方法1、KEA128的UART模塊

KEA128芯片中共有3個(gè)UART模塊:UART0、UART1和UART2。每個(gè)UART模塊的發(fā)送數(shù)據(jù)引腳為UART_TX,接收數(shù)據(jù)引腳為UART_RX??梢耘渲脼閁ART模塊的引腳見(jiàn)表11-1,具體使用的引腳,可參照uart.h頭文件中的相關(guān)宏定義。任務(wù)11.2掌握UART底層驅(qū)動(dòng)構(gòu)件的使用方法2、KEA128的UART底層驅(qū)動(dòng)構(gòu)件及使用方法

UART具有初始化、發(fā)送和接收三種基本操作。其中,UART發(fā)送是主動(dòng)任務(wù),不必采用中斷方式;而UART接收是被動(dòng)任務(wù),為了確保及時(shí)接收到對(duì)方發(fā)送來(lái)的每幀數(shù)據(jù),一般采用中斷方式。

UART底層驅(qū)動(dòng)構(gòu)件由uart.h頭文件和uart.c源文件組成,若要使用UART底層驅(qū)動(dòng)構(gòu)件,只需將這兩個(gè)文件添加到所建工程的04_Driver(MCU底層驅(qū)動(dòng)構(gòu)件)文件夾中,即可實(shí)現(xiàn)對(duì)UART的操作。見(jiàn)工程文件:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx

其中,uart.h頭文件主要包括相關(guān)頭文件的包含、一些必要的宏定義、對(duì)外接口函數(shù)的聲明,而uart.c源文件則是對(duì)外接口函數(shù)的具體實(shí)現(xiàn),初學(xué)者不必深究。

用戶(hù)只要熟悉uart.h頭文件的內(nèi)容,即可使用UART底層驅(qū)動(dòng)構(gòu)件進(jìn)行編程。任務(wù)11.3掌握PC與MCU的串口通信與調(diào)試方法11.3.1UART通信的應(yīng)用層程序設(shè)計(jì)

在嵌入式軟件最小系統(tǒng)框架下,設(shè)計(jì)07_Source(應(yīng)用層軟件構(gòu)件)的文件,以實(shí)現(xiàn):上位機(jī)PC

下位機(jī)MCU之間的串口通信。1)工程總頭文件includes.h:包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

定義字符數(shù)組(存放待發(fā)送的字符型數(shù)據(jù));

初始化;使能UART接收中斷;

在主循環(huán)中,MCU通過(guò)UART使用發(fā)送函數(shù)向PC發(fā)送數(shù)據(jù)在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx3)中斷服務(wù)程序源文件isr.c:在UART接收中斷服務(wù)程序中,MCU使用UART接收函數(shù)

接收PC發(fā)來(lái)的數(shù)據(jù),并向PC回送接收到的字符任務(wù)11.3掌握PC與MCU的串口通信與調(diào)試方法11.3.2UART通信的測(cè)試方法

(1)將USB-TTL轉(zhuǎn)換器TTL端的RX、TX、GND端子分別與MCU的TX、RX、GND引腳(參照uart.h中的引腳宏定義)相連接,將USB-TTL轉(zhuǎn)換器的USB端與PC的USB接口連接;

(2)打開(kāi)PC串口調(diào)試軟件,打開(kāi)串口,并且設(shè)置與MCU的UART相同的波特率;

(3)運(yùn)行MCU程序,通過(guò)PC串口調(diào)試窗口查看MCU發(fā)送給PC的信息;

(4)在PC串口調(diào)試窗口中寫(xiě)入字符或字符串并發(fā)送給MCU,在串口調(diào)試窗口中查看是否有MCU回送到PC的信息;

(5)調(diào)試結(jié)束后,先在PC串口調(diào)試軟件中關(guān)閉串口,然后將USB-TTL轉(zhuǎn)換器從PC的USB接口斷開(kāi)。任務(wù)11.3掌握PC與MCU的串口通信與調(diào)試方法11.3.3使用printf函數(shù)輸出數(shù)據(jù)1、通過(guò)UART使用printf函數(shù)的方法

使用printf函數(shù)時(shí),需要將printf軟件構(gòu)件對(duì)應(yīng)的printf.h頭文件和printf.c源文件添加到所建工程的06_Soft(通用軟件構(gòu)件)文件夾中。在printf.h頭文件中,添加了以下兩條預(yù)處理命令:

任務(wù)6.3學(xué)習(xí)PC與MCU的串口通信與調(diào)試方法2、通過(guò)UART使用printf函數(shù)輸出數(shù)據(jù)的應(yīng)用層程序設(shè)計(jì)【同步練習(xí)11】

通過(guò)PC串口調(diào)試窗口向MCU發(fā)送不同的字符,控制小燈的狀態(tài)。1)工程總頭文件includes.h:包含04、05、06文件夾中的頭文件2)主程序源文件main.c:

定義局部變量(存放待發(fā)送的數(shù)據(jù));

初始化;MCU通過(guò)UART使用printf函數(shù)向PC發(fā)送數(shù)據(jù)在工程文件中分析代碼并編程:..EmbeddedSource\03-Software\KEA128\KEA128.uvprojx11.3.3使用printf函數(shù)輸出數(shù)據(jù)第7單元:閃燈的設(shè)計(jì)與實(shí)現(xiàn)第8單元:開(kāi)關(guān)狀態(tài)指示燈的設(shè)計(jì)與實(shí)現(xiàn)第9單元:利用定時(shí)中斷實(shí)現(xiàn)頻閃燈第10單元:利用PWM實(shí)現(xiàn)小燈亮度控制第11單元:利用UART實(shí)現(xiàn)上位機(jī)和下位機(jī)的通信第12單元:利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表汽車(chē)嵌入式技術(shù)基礎(chǔ)篇

第12單元利用ADC設(shè)計(jì)簡(jiǎn)易數(shù)字電壓表

在汽車(chē)測(cè)控系統(tǒng)中,往往需要通過(guò)模/數(shù)轉(zhuǎn)換器(AnalogtoDigitalConverter,ADC)將模擬輸入量轉(zhuǎn)換為數(shù)字量,以供MCU接收和處理。單元學(xué)習(xí)任務(wù)和目標(biāo):(1)理解ADC的通用知識(shí),包括ADC的相關(guān)概念和最簡(jiǎn)單的A/D轉(zhuǎn)換采樣電路。(2)熟悉MCU的ADC主要特性和引腳,掌握ADC底

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論