




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
任務(wù)3人機(jī)交互功能設(shè)計(jì)與開發(fā)成都職業(yè)技術(shù)學(xué)院成都卓物科技有限公司任務(wù)情報(bào)SPI是一種全雙工高速通信總線,英文全稱SerialPeripheralinterface串行外圍設(shè)備接口,主要應(yīng)用于EEPROM、LCD、FLASH等應(yīng)用場景。一共四根線,分別是:MISO:主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出。MOSI:主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入。SCLK:時(shí)鐘信號(hào),由主設(shè)備產(chǎn)生。CS:從設(shè)備片選信號(hào),由主設(shè)備控制。一個(gè)主機(jī)可以接多個(gè)從機(jī),CS(SSx)從高電平到低電平選擇一個(gè)從機(jī),SCK、MOSI、MISO三根可以分別連接在一起,如圖所示SPI一共有四種通訊模式,這里引入時(shí)鐘極性(CPOL)和時(shí)鐘相位(CPHA),CPOL=0時(shí),SCK空閑狀態(tài)為低電平;CPOL=1時(shí),SCK空閑狀態(tài)為高電平;CPHA=0時(shí),在SCK第一個(gè)周期邊沿變化被采樣;CPHA=1時(shí),在SCK第二個(gè)周期被采樣,如表所示。當(dāng)CPHA=0的情況:當(dāng)SPI_CFG2.CPHA位為“0”時(shí),SPI在SCK的奇數(shù)邊沿進(jìn)行數(shù)據(jù)采樣,偶數(shù)邊沿進(jìn)行數(shù)據(jù)更新。下圖所示是CPHA=0時(shí)SPI的傳送時(shí)序圖。當(dāng)SSi信號(hào)的輸入電平變?yōu)橛行щ娖綍r(shí),MOSI/MISO開始更新傳輸數(shù)據(jù)。在SSi信號(hào)變?yōu)橛行Ш蟮牡谝粋€(gè)SCK信號(hào)邊沿進(jìn)行第一次數(shù)據(jù)采樣,在此之后,每過一個(gè)SCK周期對(duì)數(shù)據(jù)進(jìn)行一次采樣。每次采樣后的1/2個(gè)SCK周期時(shí)MOSI/MISO信號(hào)上數(shù)據(jù)進(jìn)行更新。CPOL位的設(shè)定值不影響SCK信號(hào)的運(yùn)行時(shí)序,而只影響信號(hào)的極性。CPHA=1的情況:當(dāng)SPI_CFG2.CPHA位為“1”時(shí),SPI在SCK的奇數(shù)邊沿進(jìn)行數(shù)據(jù)更新,偶數(shù)邊沿進(jìn)行數(shù)據(jù)采樣。下圖所示是CPHA=1時(shí)SPI的傳送時(shí)序圖。MOSI/MISO在SSi信號(hào)變?yōu)橛行щ娖胶蟮牡谝粋€(gè)SCK信號(hào)邊沿時(shí)開始傳輸數(shù)據(jù)的更新。在此之后,每過一個(gè)SCK周期對(duì)數(shù)據(jù)進(jìn)行一次更新。每次更新后的1/2個(gè)SCK周期時(shí)對(duì)數(shù)據(jù)進(jìn)行采樣。SPI_CFG2.CPOL位的設(shè)定值不影響SCK信號(hào)的運(yùn)行時(shí)序而只影響信號(hào)的極性。HC32F460一共有4個(gè)通道的串行外設(shè)接口,支持三線/四線傳輸,可設(shè)置波特率和數(shù)據(jù)寬度,系統(tǒng)框圖如圖所示。HC32F460的SPI中斷源有接收緩沖器滿、發(fā)送緩沖器空、模式故障、過載、欠載、奇偶校驗(yàn)錯(cuò)誤和SPI空閑。其中接收緩沖器滿和發(fā)送緩沖器空中斷可用于啟動(dòng)DMA進(jìn)行數(shù)據(jù)傳送。SPI中斷源的具體說明如表所示。在主機(jī)模式下,SPI時(shí)鐘由內(nèi)部波特率發(fā)生器提供;從機(jī)模式下,時(shí)鐘為SCK腳輸入。波特率取決于SPI_CFG2.MBR[2:0]位的設(shè)置。其計(jì)算方法如下面公式所示,公式中N為MBR[2:0]位的設(shè)定值,范圍是0~7。波特率:fpack/2^(N+1)本次任務(wù)常用寄存器:
SPI數(shù)據(jù)寄存器(SPI_DR)
SPI通信配置寄存器(SPI_CFGx)
SPI狀態(tài)寄存器(SPI_SR)
SPI控制寄存器(SPI_CR1)SPI數(shù)據(jù)寄存器(SPI_DR)用于發(fā)送和接收SPI數(shù)據(jù)。發(fā)送時(shí),數(shù)據(jù)先寫入此寄存器,然后傳輸?shù)揭莆患拇嫫?。接收時(shí),數(shù)據(jù)從移位寄存器移動(dòng)到此寄存器。SPI通信配置寄存器(SPI_CFG1)設(shè)定波特率、使用幀數(shù)、各種延遲時(shí)間等。(SPI_CFG2)設(shè)定SS電平、數(shù)據(jù)移位順序、延遲允許位、數(shù)據(jù)格式及時(shí)鐘極性相位等,詳情請(qǐng)查看手冊(cè)。SPI狀態(tài)寄存器(SPI_SR)用于處理SPI通信中的中斷和狀態(tài)檢查。包括各種中斷請(qǐng)求和狀態(tài)標(biāo)志位,如TXIE(發(fā)送數(shù)據(jù)中斷允許位)、RXIE(接收數(shù)據(jù)中斷允許位)、IDIE(SPI閑置狀態(tài)中斷允許位)等。SPI控制寄存器(SPI_CR1)設(shè)定SPI的模式及運(yùn)行方式、自診斷功能、奇偶校驗(yàn)等。SPE位用于啟動(dòng)和停止SPI操作。本次任務(wù)使用的是1.28寸的原型屏幕,驅(qū)動(dòng)芯片采用GC9A01驅(qū)動(dòng),一共有12個(gè)引腳,如圖所示。該顯示屏可使用三線SPI引腳驅(qū)動(dòng),引腳功能如表所示。SPI編程說明小華半導(dǎo)體公司提供的驅(qū)動(dòng)庫包含了HC32F460芯片的SPI驅(qū)動(dòng),相關(guān)的定義和說明可以在hc32_ll_spi.c和hc32_ll_spi.h文件中找到。SPI編程定義說明在HC32F460.h文件中HC32F460芯片的SPI一共有4個(gè)通道定義如下:#defineCM_SPI1((CM_SPI_TypeDef*)CM_SPI1_BASE)#defineCM_SPI2((CM_SPI_TypeDef*)CM_SPI2_BASE)#defineCM_SPI3((CM_SPI_TypeDef*)CM_SPI3_BASE)#defineCM_SPI4((CM_SPI_TypeDef*)CM_SPI4_BASE)在hc32_ll_spi.h文件中SPI配置參數(shù)時(shí)使用stc_spi_init_t結(jié)構(gòu)體,該結(jié)構(gòu)體參數(shù)很多,下面一一說明。uint32_tu32WireMode:選擇SPI總線為3線還是4線。uint32_tu32TransMode:選擇SPI傳輸模式為全雙工同步串行通信和只發(fā)送串行通信。uint32_tu32MasterSlave:選擇SPI為主機(jī)還是從機(jī)。uint32_tu32ModeFaultDetect:SPI故障命令選擇位。uint32_tu32Parity:選擇SPI奇偶校驗(yàn)?zāi)J?。uint32_tu32SpiMode:設(shè)置SPI通訊模式。uint32_tu32BaudRatePrescaler:設(shè)置SPI通信時(shí)鐘。uint32_tu32DataBits:設(shè)置SPI數(shù)據(jù)位。uint32_tu32FirstBit:設(shè)置SPI開始數(shù)據(jù)位電平。uint32_tu32SuspendMode:SPI通訊自動(dòng)掛起功能允許位。uint32_tu32FrameLevel:SPI數(shù)據(jù)幀級(jí)別設(shè)置。SPI初始化打開BSP_SPI.h文件,本次任務(wù)使用的是SPI1。/*SPIdefinition*/#defineSPI_UNIT(CM_SPI1)#defineSPI_CLK(FCG1_PERIPH_SPI1)將屏幕的SPI引腳更改上去。/*SS=PA07*/#defineSPI_SS_PORT(GPIO_PORT_A)#defineSPI_SS_PIN(GPIO_PIN_07)#defineSPI_SS_FUNC(GPIO_FUNC_42)/*SCK=PA06*/#defineSPI_SCK_PORT(GPIO_PORT_A)#defineSPI_SCK_PIN(GPIO_PIN_06)#defineSPI_SCK_FUNC(GPIO_FUNC_43)/*MOSI=P05*/#defineSPI_MOSI_PORT(GPIO_PORT_A)#defineSPI_MOSI_PIN(GPIO_PIN_05)#defineSPI_MOSI_FUNC(GPIO_FUNC_40)在lcd_init.h文件修改OLED的DC引腳。#defineBSP_LCD_DC_PORT(GPIO_PORT_C)#defineBSP_LCD_DC_PIN(GPIO_PIN_04)在main函數(shù)里首先初始化SPI_Config()函數(shù),才能初始化OLED函數(shù)LCD_Init()。
SPI_Config();LCD_Init();屏幕初始化成功后,首先要進(jìn)行清屏處理,x和y軸從0開始,終點(diǎn)為屏幕的最大尺寸,以白色填充整個(gè)屏幕。LCD_Fill(0,0,LCD_W,LCD_H,WHITE);清屏后使用LCD_ShowString()函數(shù)顯示字符串,x和y軸從60開始,顯示字符串“AMOLEDinitial”,字體為紅色,背景白色,字號(hào)16,無覆蓋。后面來一個(gè)死循環(huán),不然讓程序退出。LCD_ShowString(60,60,(void*)"AMOLEDinitial",RED,WHITE,1
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣東中山大學(xué)附屬口腔醫(yī)院工勤事務(wù)崗工作人員(駕駛員)招聘1人模擬試卷及答案詳解(奪冠系列)
- 小學(xué)防欺凌測試題及答案
- 工貿(mào)安全考試題及答案
- 告別詩考試題目及答案
- 高青網(wǎng)格員考試題及答案
- 企業(yè)人才招募分析模板及指南
- 合規(guī)操作流程承諾函9篇
- 2025年病案編碼員資格證試題庫(附答案)
- 2025年公共藝術(shù)音樂試卷及答案
- 數(shù)據(jù)資訊協(xié)作守秘承諾函6篇范文
- 地質(zhì)工程說課課件大綱
- 2025學(xué)年第一學(xué)期江浙皖高中(縣中)發(fā)展共同體高三語文10月聯(lián)考試題古詩鑒賞詳解:李覯《南齋詠風(fēng)》、黃友《詠風(fēng)》
- 人似秋鴻來有信-2025年中國網(wǎng)絡(luò)助貸行業(yè)研究報(bào)告
- 幼兒健康試講真題及答案
- 基于GIS技術(shù)的南寧市城區(qū)洪澇災(zāi)害風(fēng)險(xiǎn)動(dòng)態(tài)評(píng)估與時(shí)空演變解析
- 死因監(jiān)測及腫瘤隨課件
- 強(qiáng)對(duì)流天氣安全培訓(xùn)課件
- 北京故宮研學(xué)旅行方案設(shè)計(jì)
- 燃?xì)庠O(shè)備安裝調(diào)試方案
- 術(shù)后鼻出血處理課件
- 計(jì)算與人工智能概論(湖南大學(xué)信息科學(xué)與工程學(xué)院)學(xué)習(xí)通網(wǎng)課章節(jié)測試答案
評(píng)論
0/150
提交評(píng)論