面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開(kāi)發(fā)-24-STM32-LCD技術(shù)應(yīng)用開(kāi)發(fā)課件_第1頁(yè)
面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開(kāi)發(fā)-24-STM32-LCD技術(shù)應(yīng)用開(kāi)發(fā)課件_第2頁(yè)
面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開(kāi)發(fā)-24-STM32-LCD技術(shù)應(yīng)用開(kāi)發(fā)課件_第3頁(yè)
面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開(kāi)發(fā)-24-STM32-LCD技術(shù)應(yīng)用開(kāi)發(fā)課件_第4頁(yè)
面向物聯(lián)網(wǎng)的嵌入式系統(tǒng)開(kāi)發(fā)-24-STM32-LCD技術(shù)應(yīng)用開(kāi)發(fā)課件_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

CC2530和STM32嵌入式接口技術(shù)開(kāi)發(fā)6.1STM32LCD技術(shù)應(yīng)用開(kāi)發(fā)CC2530和STM32嵌入式接口技術(shù)開(kāi)發(fā)6.1STM3顯示器STM32FSMC接口技術(shù)STM32FSMC庫(kù)函數(shù)ILI93xxLCD原理項(xiàng)目實(shí)踐顯示器顯示器介紹液晶顯示器OLED顯示器顯示器屬于計(jì)算機(jī)的I/O設(shè)備,即輸入輸出設(shè)備。它是一種將特定電子信息輸出到屏幕上再反射到人眼的顯示工具。常見(jiàn)的有CRT顯示器、液晶顯示器、LED點(diǎn)陣顯示器及OLED顯示器。顯示器介紹液晶顯示器OLED顯示器顯示器屬于計(jì)算機(jī)的I/O設(shè)顯示器的相關(guān)參數(shù)像素分辨率色彩深度顯示器參數(shù)顯示器的相關(guān)參數(shù)像素分辨率色彩深度顯示器參數(shù)FSMC介紹STM32F407或STM32F417系列芯片都帶有FSMC接口。FSMC即靈活的靜態(tài)存儲(chǔ)控制器,能夠與同步或異步存儲(chǔ)器和16位PC存儲(chǔ)器卡連接,STM32F4的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存儲(chǔ)器。SARMPSARMNANDNORFSMC介紹STM32F407或STM32F417系列芯片都FSMC連接框圖STM32F4的FSMC將外部設(shè)備分為2類(lèi):NOR/PSRAM設(shè)備、NAND/PC卡設(shè)備。他們共用地址數(shù)據(jù)總線等信號(hào),他們具有不同的CS以區(qū)分不同的設(shè)備,比如本項(xiàng)目用到的TFTLCD就是用的FSMC_NE4做片選,其實(shí)就是將TFTLCD當(dāng)成SRAM來(lái)控制。FSMC連接框圖STM32F4的FSMC將外部設(shè)備分為2類(lèi):FSMC的存儲(chǔ)地址分配及映射FSMC總共管理1GB空間,擁有4個(gè)存儲(chǔ)塊(Bank)。FSMC存儲(chǔ)塊1(Bank1)被分為4個(gè)區(qū),每個(gè)區(qū)管理64M字節(jié)空間,每個(gè)區(qū)都有獨(dú)立的寄存器對(duì)所連接的存儲(chǔ)器進(jìn)行配置。Bank1的256M字節(jié)空間由28根地址線(HADDR[27:0])尋址。FSMC的存儲(chǔ)地址分配及映射FSMC總共管理1GB空間,擁有FSMC的讀寫(xiě)操作FSMC在A模式下,讀和寫(xiě)的時(shí)序時(shí)獨(dú)立的。讀的速度較慢,寫(xiě)的速度較快。在這種模式下很適合TFTLCD屏幕的操作。FSMC讀時(shí)序FSMC寫(xiě)時(shí)序FSMC的讀寫(xiě)操作FSMC在A模式下,讀和寫(xiě)的時(shí)序時(shí)獨(dú)立的。STM32的FSMC的配置FSMC初始化函數(shù)。FSMC_NORSRAMInit();//NORSRam初始化函數(shù)FSMC_NANDInit();//NANDFlash初始化函數(shù)FSMC_PCCARDInit();//PCCard初始化函數(shù)FSMC使能函數(shù)。voidFSMC_NORSRAMCmd(uint32_tFSMC_Bank,FunctionalStateNewState);//NORSRam使能voidFSMC_NANDCmd(uint32_tFSMC_Bank,FunctionalStateNewState);//NANDFlash使能voidFSMC_PCCARDCmd(FunctionalStateNewState);//PCCard使能FSMC的存儲(chǔ)外設(shè)有很多,有NORSRAM、NANDFlash、PCCard等。但在使用的過(guò)程中通常用到哪種存儲(chǔ)器就配置哪種存儲(chǔ)器的函數(shù)從而初始化外設(shè)。STM32的FSMC的配置FSMC初始化函數(shù)。FSMC_NOSTM32的FSMC的基本配置參數(shù)typedefstruct{uint32_tFSMC_Bank;//FSMC的Bank的標(biāo)號(hào)區(qū)號(hào)配置參數(shù)uint32_tFSMC_DataAddressMux;//設(shè)置地址總線與數(shù)據(jù)總線是否復(fù)用uint32_tFSMC_MemoryType;//設(shè)置存儲(chǔ)器的類(lèi)型uint32_tFSMC_MemoryDataWidth;//設(shè)置存儲(chǔ)器的數(shù)據(jù)寬度,TFTLCD屏幕時(shí)16位數(shù)據(jù)寬度uint32_tFSMC_BurstAccessMode;//設(shè)置是否支持突發(fā)訪問(wèn)模式,只支持同步類(lèi)型的存儲(chǔ)器uint32_tFSMC_AsynchronousWait;//設(shè)置是否使能在同步傳輸時(shí)的等待信號(hào)uint32_tFSMC_WaitSignalPolarity;//設(shè)置等待信號(hào)的極性u(píng)int32_tFSMC_WrapMode;//設(shè)置是否支持對(duì)齊的突發(fā)模式uint32_tFSMC_WaitSignalActive;//配置等待信號(hào)在等待前有效還是等待期間有效uint32_tFSMC_WriteOperation;//設(shè)置是否寫(xiě)使能uint32_tFSMC_WaitSignal;//設(shè)置是否使能等待狀態(tài)插入uint32_tFSMC_ExtendedMode;//設(shè)置是否使能擴(kuò)展模式uint32_tFSMC_WriteBurst;//設(shè)置是否使能寫(xiě)突發(fā)操作//當(dāng)不使用擴(kuò)展模式時(shí),本參數(shù)用于配置讀寫(xiě)時(shí)序,否則用于配置讀時(shí)序FSMC_NORSRAMTimingInitTypeDef*FSMC_ReadWriteTimingStruct;//當(dāng)使用擴(kuò)展模式時(shí),本參數(shù)用于配置寫(xiě)時(shí)序FSMC_NORSRAMTimingInitTypeDef*FSMC_WriteTimingStruct;}FSMC_NORSRAMInitTypeDef;STM32的FSMC的基本配置參數(shù)typedefstructSTM32的FSMC的時(shí)序配置參數(shù)typedefstruct{uint32_tFSMC_AddressSetupTime;//地址建立時(shí)間,0-0xF個(gè)HCLK周期uint32_tFSMC_AddressHoldTime;//地址保持時(shí)間,0-0xF個(gè)HCLK周期uint32_tFSMC_DataSetupTime;//數(shù)據(jù)建立時(shí)間,0-0xF個(gè)HCLK周期uint32_tFSMC_BusTurnAroundDuration;//總線轉(zhuǎn)換周期,0-0xF個(gè)HCLK周期uint32_tFSMC_CLKDivision;//時(shí)鐘分頻因子,1-0xF,若控制異步存儲(chǔ)器,本參數(shù)無(wú)效uint32_tFSMC_DataLatency;//數(shù)據(jù)延遲時(shí)間,若控制異步存儲(chǔ)器,本參數(shù)無(wú)效uint32_tFSMC_AccessMode;//設(shè)置訪問(wèn)模式}FSMC_NORSRAMTimingInitTypeDef;//FSMC讀/寫(xiě)時(shí)鐘配置FSMC的在配置時(shí)由于驅(qū)動(dòng)TFTLCD屏幕使用的是A模式,即異步模式。所以FSMC_NORSRAMTimingInitTypeDef結(jié)構(gòu)體需要根據(jù)讀時(shí)序和寫(xiě)時(shí)序分別配置兩次。STM32的FSMC的時(shí)序配置參數(shù)typedefstructILI93xxLCD原理ILI93XX控制器內(nèi)部結(jié)構(gòu)ILI93xxLCD原理ILI93XX控制器內(nèi)部結(jié)構(gòu)ILI93xxLCD原理液晶引出信號(hào)線說(shuō)明:信號(hào)線ILI9341對(duì)應(yīng)信號(hào)線說(shuō)明FSMC_D[15:0]D[15:0]數(shù)據(jù)信號(hào)線LCD_CSCSX片選信號(hào),低電平有效FSMC_NWEWRX寫(xiě)數(shù)據(jù)信號(hào),低電平有效FSMC_NOERDX讀數(shù)據(jù)信號(hào),低電平有效LCD_BL----背光信號(hào),低電平點(diǎn)亮LCD_RSD/CX數(shù)據(jù)/命令信號(hào),高電平時(shí),D[15:0]表示的是數(shù)據(jù)(RGB像素?cái)?shù)據(jù)或命令數(shù)據(jù)),低電平時(shí)D[15:0]表示控制命令RSTRESX復(fù)位信號(hào),低電平有效ILI93xxLCD原理液晶引出信號(hào)線說(shuō)明:信號(hào)線ILI9ILI93xxLCD原理在STM32的使用過(guò)程中,通常使用STM32的片上外設(shè)FSMC對(duì)8080端口的時(shí)序進(jìn)行模擬。ILI93xxLCD原理在STM32的使用過(guò)程中,通常使用項(xiàng)目場(chǎng)景可視對(duì)講系統(tǒng)是一套現(xiàn)代化的小區(qū)住宅服務(wù)措施,提供訪客與住戶之間雙向可視通話,達(dá)到圖像、語(yǔ)音雙重識(shí)別從而增加安全可靠性,同時(shí)節(jié)省大量的時(shí)間,提高了工作效率。它可提高住宅的整體管理和服務(wù)水平,創(chuàng)造安全社區(qū)居住環(huán)境,因此逐步成為小康住宅不可缺少的配套設(shè)備。項(xiàng)目場(chǎng)景可視對(duì)講系統(tǒng)是一套現(xiàn)代化的小區(qū)住宅服務(wù)措施,提供訪客任務(wù)目標(biāo)樓宇智能設(shè)備企業(yè)要設(shè)計(jì)一款可視對(duì)講系統(tǒng)設(shè)備,通過(guò)門(mén)口主機(jī)安裝的攝像頭對(duì)門(mén)口圖像在室內(nèi)可視分機(jī)顯示屏顯示,要求使用STM32處理器的FSMC接口驅(qū)動(dòng)液晶顯示屏。任務(wù)目標(biāo)樓宇智能設(shè)備企業(yè)要設(shè)計(jì)一款可視對(duì)講系統(tǒng)設(shè)備,通過(guò)門(mén)口項(xiàng)目分析TFTLCD屏幕在STM32上的使用主要是需要弄清楚STM32能夠驅(qū)動(dòng)TFTLCD屏幕的原理,STM32的FSMC外設(shè)可以驅(qū)動(dòng)SARM這種存儲(chǔ)其,這種存儲(chǔ)其的驅(qū)動(dòng)與TFTLCD屏的驅(qū)動(dòng)方式類(lèi)似,因此可以使用SARM來(lái)驅(qū)動(dòng)LCD屏,其中LCD屏幕的數(shù)據(jù)總線就是用FSMC的數(shù)據(jù)總線,而數(shù)據(jù)和指令線電平的切換則有FSMC的地址總線來(lái)完成。項(xiàng)目分析TFTLCD屏幕在STM32上的使用主要是需要弄清楚項(xiàng)目程序邏輯框圖程序啟動(dòng)首先初始化LED和LCD的背光,初始化完成以后初始化FSMC和LCD。在準(zhǔn)備工作完成后開(kāi)啟LCD背光清屏和LCD屏幕的一系列操作,并在LCD上顯示信息。項(xiàng)目程序邏輯框圖程序啟動(dòng)首先初始化LED和LCD的背光,初始項(xiàng)目實(shí)現(xiàn)voidfsmc_init(void){GPIO_InitTypeDefGPIO_InitStructure;FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure;FSMC_NORSRAMTimingInitTypeDefreadWriteTiming;FSMC_NORSRAMTimingInitTypeDefwriteTiming;RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC,ENABLE);//使能FSMC時(shí)鐘

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE,ENABLE);//使能GPIO時(shí)鐘

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_7;//選中相應(yīng)的引腳

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//復(fù)用模式

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//輸出速度

GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽輸出

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;//無(wú)上下拉

GPIO_Init(GPIOD,&GPIO_InitStructure);//按上述參數(shù)初始化(PD)GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//選中相應(yīng)的引腳

GPIO_Init(GPIOE,&GPIO_InitStructure);//按上述參數(shù)初始化(PE)fsmc初始化項(xiàng)目實(shí)現(xiàn)voidfsmc_init(void)fsmc初始項(xiàng)目實(shí)現(xiàn)

//復(fù)用配置,將下列引腳復(fù)用為FSMCGPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource7,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource14,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource10,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource8,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource10,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource11,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource12,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource13,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource14,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource15,GPIO_AF_FSMC);fsmc初始化項(xiàng)目實(shí)現(xiàn)//復(fù)用配置,將下列引腳復(fù)用為FSMCfsmc初始項(xiàng)目實(shí)現(xiàn)

//寫(xiě)配置

readWriteTiming.FSMC_AddressSetupTime=0XF; //地址建立時(shí)間為16個(gè)HCLK1/168M=6ns*16=96ns readWriteTiming.FSMC_AddressHoldTime=0; //地址保持時(shí)間模式A未用到

readWriteTiming.FSMC_DataSetupTime=60; //數(shù)據(jù)保持時(shí)間為60個(gè)HCLK=6*60=360nsreadWriteTiming.FSMC_BusTurnAroundDuration=0x00;readWriteTiming.FSMC_CLKDivision=0x00;readWriteTiming.FSMC_DataLatency=0x00;readWriteTiming.FSMC_AccessMode=FSMC_AccessMode_A; //模式AwriteTiming.FSMC_AddressSetupTime=15; //地址建立時(shí)間為9個(gè)HCLK=54nswriteTiming.FSMC_AddressHoldTime=0; //地址保持時(shí)間

writeTiming.FSMC_DataSetupTime=15; //數(shù)據(jù)保持時(shí)間為6ns*9個(gè)HCLK=54nswriteTiming.FSMC_BusTurnAroundDuration=0x00;writeTiming.FSMC_CLKDivision=0x00;writeTiming.FSMC_DataLatency=0x00;writeTiming.FSMC_AccessMode=FSMC_AccessMode_A; //模式Afsmc初始化項(xiàng)目實(shí)現(xiàn)//寫(xiě)配置fsmc初始化項(xiàng)目實(shí)現(xiàn)

//配置FSMCFSMC_NORSRAMInitStructure.FSMC_Bank=FSMC_Bank1_NORSRAM1;//使用NE1FSMC_NORSRAMInitStructure.FSMC_DataAddressMux=FSMC_DataAddressMux_Disable;//不復(fù)用數(shù)據(jù)地址

FSMC_NORSRAMInitStructure.FSMC_MemoryType=FSMC_MemoryType_SRAM;//FSMC_MemoryType_SRAM;//SRAMFSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth=FSMC_MemoryDataWidth_16b;//存儲(chǔ)器寬度16bitFSMC_NORSRAMInitStructure.FSMC_BurstAccessMode=FSMC_BurstAccessMode_Disable;//FSMC_BurstAccessMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity=FSMC_WaitSignalPolarity_Low;FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait=FSMC_AsynchronousWait_Disable;FSMC_NORSRAMInitStructure.FSMC_WrapMode=FSMC_WrapMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive=FSMC_WaitSignalActive_BeforeWaitState;FSMC_NORSRAMInitStructure.FSMC_WriteOperation=FSMC_WriteOperation_Enable; //存儲(chǔ)器寫(xiě)使能

FSMC_NORSRAMInitStructure.FSMC_WaitSignal=FSMC_WaitSignal_Disable;FSMC_NORSRAMInitStructure.FSMC_ExtendedMode=FSMC_ExtendedMode_Enable;//讀寫(xiě)使用不同時(shí)序

FSMC_NORSRAMInitStructure.FSMC_WriteBurst=FSMC_WriteBurst_Disable;FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct=&readWriteTiming;//讀時(shí)序

FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct=&writeTiming;//寫(xiě)時(shí)序

FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure);//初始化fsmc配置

FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM1,ENABLE);//使能bank1,sram1}fsmc初始化項(xiàng)目實(shí)現(xiàn)//配置FSMCfsmc初始化項(xiàng)目思考FSMC支持哪些存儲(chǔ)的拓展?FSMC有幾個(gè)BANK,每個(gè)BANK又是如何分配的?FSMC如何實(shí)現(xiàn)對(duì)TFT屏幕的控制?項(xiàng)目思考FSMC支持哪些存儲(chǔ)的拓展?CC2530和STM32嵌入式接口技術(shù)開(kāi)發(fā)6.1STM32LCD技術(shù)應(yīng)用開(kāi)發(fā)CC2530和STM32嵌入式接口技術(shù)開(kāi)發(fā)6.1STM3顯示器STM32FSMC接口技術(shù)STM32FSMC庫(kù)函數(shù)ILI93xxLCD原理項(xiàng)目實(shí)踐顯示器顯示器介紹液晶顯示器OLED顯示器顯示器屬于計(jì)算機(jī)的I/O設(shè)備,即輸入輸出設(shè)備。它是一種將特定電子信息輸出到屏幕上再反射到人眼的顯示工具。常見(jiàn)的有CRT顯示器、液晶顯示器、LED點(diǎn)陣顯示器及OLED顯示器。顯示器介紹液晶顯示器OLED顯示器顯示器屬于計(jì)算機(jī)的I/O設(shè)顯示器的相關(guān)參數(shù)像素分辨率色彩深度顯示器參數(shù)顯示器的相關(guān)參數(shù)像素分辨率色彩深度顯示器參數(shù)FSMC介紹STM32F407或STM32F417系列芯片都帶有FSMC接口。FSMC即靈活的靜態(tài)存儲(chǔ)控制器,能夠與同步或異步存儲(chǔ)器和16位PC存儲(chǔ)器卡連接,STM32F4的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存儲(chǔ)器。SARMPSARMNANDNORFSMC介紹STM32F407或STM32F417系列芯片都FSMC連接框圖STM32F4的FSMC將外部設(shè)備分為2類(lèi):NOR/PSRAM設(shè)備、NAND/PC卡設(shè)備。他們共用地址數(shù)據(jù)總線等信號(hào),他們具有不同的CS以區(qū)分不同的設(shè)備,比如本項(xiàng)目用到的TFTLCD就是用的FSMC_NE4做片選,其實(shí)就是將TFTLCD當(dāng)成SRAM來(lái)控制。FSMC連接框圖STM32F4的FSMC將外部設(shè)備分為2類(lèi):FSMC的存儲(chǔ)地址分配及映射FSMC總共管理1GB空間,擁有4個(gè)存儲(chǔ)塊(Bank)。FSMC存儲(chǔ)塊1(Bank1)被分為4個(gè)區(qū),每個(gè)區(qū)管理64M字節(jié)空間,每個(gè)區(qū)都有獨(dú)立的寄存器對(duì)所連接的存儲(chǔ)器進(jìn)行配置。Bank1的256M字節(jié)空間由28根地址線(HADDR[27:0])尋址。FSMC的存儲(chǔ)地址分配及映射FSMC總共管理1GB空間,擁有FSMC的讀寫(xiě)操作FSMC在A模式下,讀和寫(xiě)的時(shí)序時(shí)獨(dú)立的。讀的速度較慢,寫(xiě)的速度較快。在這種模式下很適合TFTLCD屏幕的操作。FSMC讀時(shí)序FSMC寫(xiě)時(shí)序FSMC的讀寫(xiě)操作FSMC在A模式下,讀和寫(xiě)的時(shí)序時(shí)獨(dú)立的。STM32的FSMC的配置FSMC初始化函數(shù)。FSMC_NORSRAMInit();//NORSRam初始化函數(shù)FSMC_NANDInit();//NANDFlash初始化函數(shù)FSMC_PCCARDInit();//PCCard初始化函數(shù)FSMC使能函數(shù)。voidFSMC_NORSRAMCmd(uint32_tFSMC_Bank,FunctionalStateNewState);//NORSRam使能voidFSMC_NANDCmd(uint32_tFSMC_Bank,FunctionalStateNewState);//NANDFlash使能voidFSMC_PCCARDCmd(FunctionalStateNewState);//PCCard使能FSMC的存儲(chǔ)外設(shè)有很多,有NORSRAM、NANDFlash、PCCard等。但在使用的過(guò)程中通常用到哪種存儲(chǔ)器就配置哪種存儲(chǔ)器的函數(shù)從而初始化外設(shè)。STM32的FSMC的配置FSMC初始化函數(shù)。FSMC_NOSTM32的FSMC的基本配置參數(shù)typedefstruct{uint32_tFSMC_Bank;//FSMC的Bank的標(biāo)號(hào)區(qū)號(hào)配置參數(shù)uint32_tFSMC_DataAddressMux;//設(shè)置地址總線與數(shù)據(jù)總線是否復(fù)用uint32_tFSMC_MemoryType;//設(shè)置存儲(chǔ)器的類(lèi)型uint32_tFSMC_MemoryDataWidth;//設(shè)置存儲(chǔ)器的數(shù)據(jù)寬度,TFTLCD屏幕時(shí)16位數(shù)據(jù)寬度uint32_tFSMC_BurstAccessMode;//設(shè)置是否支持突發(fā)訪問(wèn)模式,只支持同步類(lèi)型的存儲(chǔ)器uint32_tFSMC_AsynchronousWait;//設(shè)置是否使能在同步傳輸時(shí)的等待信號(hào)uint32_tFSMC_WaitSignalPolarity;//設(shè)置等待信號(hào)的極性u(píng)int32_tFSMC_WrapMode;//設(shè)置是否支持對(duì)齊的突發(fā)模式uint32_tFSMC_WaitSignalActive;//配置等待信號(hào)在等待前有效還是等待期間有效uint32_tFSMC_WriteOperation;//設(shè)置是否寫(xiě)使能uint32_tFSMC_WaitSignal;//設(shè)置是否使能等待狀態(tài)插入uint32_tFSMC_ExtendedMode;//設(shè)置是否使能擴(kuò)展模式uint32_tFSMC_WriteBurst;//設(shè)置是否使能寫(xiě)突發(fā)操作//當(dāng)不使用擴(kuò)展模式時(shí),本參數(shù)用于配置讀寫(xiě)時(shí)序,否則用于配置讀時(shí)序FSMC_NORSRAMTimingInitTypeDef*FSMC_ReadWriteTimingStruct;//當(dāng)使用擴(kuò)展模式時(shí),本參數(shù)用于配置寫(xiě)時(shí)序FSMC_NORSRAMTimingInitTypeDef*FSMC_WriteTimingStruct;}FSMC_NORSRAMInitTypeDef;STM32的FSMC的基本配置參數(shù)typedefstructSTM32的FSMC的時(shí)序配置參數(shù)typedefstruct{uint32_tFSMC_AddressSetupTime;//地址建立時(shí)間,0-0xF個(gè)HCLK周期uint32_tFSMC_AddressHoldTime;//地址保持時(shí)間,0-0xF個(gè)HCLK周期uint32_tFSMC_DataSetupTime;//數(shù)據(jù)建立時(shí)間,0-0xF個(gè)HCLK周期uint32_tFSMC_BusTurnAroundDuration;//總線轉(zhuǎn)換周期,0-0xF個(gè)HCLK周期uint32_tFSMC_CLKDivision;//時(shí)鐘分頻因子,1-0xF,若控制異步存儲(chǔ)器,本參數(shù)無(wú)效uint32_tFSMC_DataLatency;//數(shù)據(jù)延遲時(shí)間,若控制異步存儲(chǔ)器,本參數(shù)無(wú)效uint32_tFSMC_AccessMode;//設(shè)置訪問(wèn)模式}FSMC_NORSRAMTimingInitTypeDef;//FSMC讀/寫(xiě)時(shí)鐘配置FSMC的在配置時(shí)由于驅(qū)動(dòng)TFTLCD屏幕使用的是A模式,即異步模式。所以FSMC_NORSRAMTimingInitTypeDef結(jié)構(gòu)體需要根據(jù)讀時(shí)序和寫(xiě)時(shí)序分別配置兩次。STM32的FSMC的時(shí)序配置參數(shù)typedefstructILI93xxLCD原理ILI93XX控制器內(nèi)部結(jié)構(gòu)ILI93xxLCD原理ILI93XX控制器內(nèi)部結(jié)構(gòu)ILI93xxLCD原理液晶引出信號(hào)線說(shuō)明:信號(hào)線ILI9341對(duì)應(yīng)信號(hào)線說(shuō)明FSMC_D[15:0]D[15:0]數(shù)據(jù)信號(hào)線LCD_CSCSX片選信號(hào),低電平有效FSMC_NWEWRX寫(xiě)數(shù)據(jù)信號(hào),低電平有效FSMC_NOERDX讀數(shù)據(jù)信號(hào),低電平有效LCD_BL----背光信號(hào),低電平點(diǎn)亮LCD_RSD/CX數(shù)據(jù)/命令信號(hào),高電平時(shí),D[15:0]表示的是數(shù)據(jù)(RGB像素?cái)?shù)據(jù)或命令數(shù)據(jù)),低電平時(shí)D[15:0]表示控制命令RSTRESX復(fù)位信號(hào),低電平有效ILI93xxLCD原理液晶引出信號(hào)線說(shuō)明:信號(hào)線ILI9ILI93xxLCD原理在STM32的使用過(guò)程中,通常使用STM32的片上外設(shè)FSMC對(duì)8080端口的時(shí)序進(jìn)行模擬。ILI93xxLCD原理在STM32的使用過(guò)程中,通常使用項(xiàng)目場(chǎng)景可視對(duì)講系統(tǒng)是一套現(xiàn)代化的小區(qū)住宅服務(wù)措施,提供訪客與住戶之間雙向可視通話,達(dá)到圖像、語(yǔ)音雙重識(shí)別從而增加安全可靠性,同時(shí)節(jié)省大量的時(shí)間,提高了工作效率。它可提高住宅的整體管理和服務(wù)水平,創(chuàng)造安全社區(qū)居住環(huán)境,因此逐步成為小康住宅不可缺少的配套設(shè)備。項(xiàng)目場(chǎng)景可視對(duì)講系統(tǒng)是一套現(xiàn)代化的小區(qū)住宅服務(wù)措施,提供訪客任務(wù)目標(biāo)樓宇智能設(shè)備企業(yè)要設(shè)計(jì)一款可視對(duì)講系統(tǒng)設(shè)備,通過(guò)門(mén)口主機(jī)安裝的攝像頭對(duì)門(mén)口圖像在室內(nèi)可視分機(jī)顯示屏顯示,要求使用STM32處理器的FSMC接口驅(qū)動(dòng)液晶顯示屏。任務(wù)目標(biāo)樓宇智能設(shè)備企業(yè)要設(shè)計(jì)一款可視對(duì)講系統(tǒng)設(shè)備,通過(guò)門(mén)口項(xiàng)目分析TFTLCD屏幕在STM32上的使用主要是需要弄清楚STM32能夠驅(qū)動(dòng)TFTLCD屏幕的原理,STM32的FSMC外設(shè)可以驅(qū)動(dòng)SARM這種存儲(chǔ)其,這種存儲(chǔ)其的驅(qū)動(dòng)與TFTLCD屏的驅(qū)動(dòng)方式類(lèi)似,因此可以使用SARM來(lái)驅(qū)動(dòng)LCD屏,其中LCD屏幕的數(shù)據(jù)總線就是用FSMC的數(shù)據(jù)總線,而數(shù)據(jù)和指令線電平的切換則有FSMC的地址總線來(lái)完成。項(xiàng)目分析TFTLCD屏幕在STM32上的使用主要是需要弄清楚項(xiàng)目程序邏輯框圖程序啟動(dòng)首先初始化LED和LCD的背光,初始化完成以后初始化FSMC和LCD。在準(zhǔn)備工作完成后開(kāi)啟LCD背光清屏和LCD屏幕的一系列操作,并在LCD上顯示信息。項(xiàng)目程序邏輯框圖程序啟動(dòng)首先初始化LED和LCD的背光,初始項(xiàng)目實(shí)現(xiàn)voidfsmc_init(void){GPIO_InitTypeDefGPIO_InitStructure;FSMC_NORSRAMInitTypeDefFSMC_NORSRAMInitStructure;FSMC_NORSRAMTimingInitTypeDefreadWriteTiming;FSMC_NORSRAMTimingInitTypeDefwriteTiming;RCC_AHB3PeriphClockCmd(RCC_AHB3Periph_FSMC,ENABLE);//使能FSMC時(shí)鐘

RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD|RCC_AHB1Periph_GPIOE,ENABLE);//使能GPIO時(shí)鐘

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_14|GPIO_Pin_15|GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_7;//選中相應(yīng)的引腳

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;//復(fù)用模式

GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;//輸出速度

GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;//推挽輸出

GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;//無(wú)上下拉

GPIO_Init(GPIOD,&GPIO_InitStructure);//按上述參數(shù)初始化(PD)GPIO_InitStructure.GPIO_Pin=GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;//選中相應(yīng)的引腳

GPIO_Init(GPIOE,&GPIO_InitStructure);//按上述參數(shù)初始化(PE)fsmc初始化項(xiàng)目實(shí)現(xiàn)voidfsmc_init(void)fsmc初始項(xiàng)目實(shí)現(xiàn)

//復(fù)用配置,將下列引腳復(fù)用為FSMCGPIO_PinAFConfig(GPIOD,GPIO_PinSource12,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource7,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource4,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource5,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource14,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource15,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource0,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource1,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource8,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource9,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOD,GPIO_PinSource10,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource7,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource8,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource9,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource10,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource11,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource12,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource13,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource14,GPIO_AF_FSMC);GPIO_PinAFConfig(GPIOE,GPIO_PinSource15,GPIO_AF_FSMC);fsmc初始化項(xiàng)目實(shí)現(xiàn)//復(fù)用配置,將下列引腳復(fù)用為FSMCfsmc初始項(xiàng)目實(shí)現(xiàn)

//寫(xiě)配置

readWriteTiming.FSMC_AddressSetupTime=0XF; //地址建立時(shí)間為16個(gè)HCLK1/168M=6ns*16=96ns readWriteTiming.FSMC_AddressHoldTime=0; //地址保持時(shí)間模式A未用到

readWriteTiming.FSMC_DataSetupTime=60; //數(shù)據(jù)保持時(shí)間為60個(gè)HCLK=6*60=360nsreadWriteTiming.FSMC_BusTurnAroundDuration=0x00;readWriteTiming.FSMC_CLKDivision=0x00;readWriteTiming.FSMC_DataLatency=0x00;readWriteTiming.FSMC_AccessMode=FSMC_AccessMode_A; //模式AwriteTiming.FSMC_AddressSetupTime=15; //地址建立時(shí)間為9個(gè)HCLK=54nswriteTiming.FSMC_AddressHoldTime=0; //地址保持時(shí)間

writeTiming.FSMC_DataSetupTime=15; //數(shù)據(jù)保持時(shí)間為6ns*9個(gè)HCLK=54nswriteTim

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論