stm32f051開發(fā)板第十一節(jié)sp讀取串行flash_第1頁
stm32f051開發(fā)板第十一節(jié)sp讀取串行flash_第2頁
stm32f051開發(fā)板第十一節(jié)sp讀取串行flash_第3頁
stm32f051開發(fā)板第十一節(jié)sp讀取串行flash_第4頁
stm32f051開發(fā)板第十一節(jié)sp讀取串行flash_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

QF-V1.0QF-V1.0/PAGEPAGE2作者 青淘寶店:硬件平臺(tái):QF- 開發(fā)SPI(SerialPeripheralInterface--串行外設(shè)接口)總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種設(shè)備以串行方式進(jìn)行通信以交換信息。SPI有三個(gè)寄存器分別為:控制寄存器SPCR,狀態(tài)寄存器SPSR,數(shù)據(jù)寄存器SPDR。設(shè)備包括FLASHRAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動(dòng)器、A/DMCU等。SPI總線系統(tǒng)可直接與各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)器件直接接口,該接口一般使用4條線:串行時(shí)鐘線(SCLK、主機(jī)輸入/從機(jī)輸出數(shù)據(jù)線MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI和低電平有效的從機(jī)選擇線SS(有的SPI接口帶有中斷信號(hào)線INT、有的SPI接口芯片沒有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線MOSI)。本實(shí)驗(yàn)通過SPI讀寫串行FLASH,串行FLASH采樣W25X16。硬件準(zhǔn)備 :W25X16- :W25X16-CLK |PB15-SPI2-MOSI:W25X16-DIOCS:FLASH片選信號(hào)引腳。SCK:FLASH時(shí)鐘信號(hào)引腳。MISO:FLASH主入從出引腳。軟件配置 如下圖所示,用戶需要編寫FALSH驅(qū)動(dòng)函數(shù)w25x16.c驅(qū)動(dòng)函數(shù)和主函數(shù)main.c.IO端口復(fù)用,SPIvoid{ QF-V1.0QF-V1.0/PAGEPAGE4 ENABLE);//配置gpio時(shí)鐘RCC_APB1PeriphClockCmd(FLASH_SPI2,ENABLE);//spi時(shí) =GPIO_Init(FLASH_SCK_PORT,&GPIO_InitStruct);//時(shí)鐘gpio/*!<ConfigureSPIpins:MISOGPIO_Init(FLASH_MISO_PORT,/*!<ConfigureSPIpins:MOSIGPIO_InitStruct.GPIO_PinGPIO_Init(FLASH_MOSI_PORT,/*ConnectPXxtoSPI_SCKGPIO_PinAFConfig(FLASH_SCK_PORT,FLASH_SCK_SOURCE,/*ConnectPXxtoSPI_MISOGPIO_PinAFConfig(FLASH_MISO_PORT,FLASH_MISO_SOURCE,/*ConnectPXxtoSPI_MOSIGPIO_PinAFConfig(FLASH_MOSI_PORT,FLASH_MOSI_SOURCE,//設(shè)置gpio端口的GPIO_InitStruct.GPIO_PinGPIO_Init(FLASH_CS_PORT,SPI_InitStruct.SPI_Direction=SPI_Direction_2Lines_FullDuplex;//配置spi方SPI_InitStruct.SPI_Mode=SPI_Mode_Master;//spi模SPI_InitStruct.SPI_DataSize=SPI_DataSize_8b;//配置數(shù)據(jù)格SPI_InitStruct.SPI_CPOL=SPI_CPOL_High;//SPI_InitStruct.SPI_CPHA=SPI_CPHA_2Edge;//配置時(shí)鐘bit位捕獲值SPI_Cmd(SPI2,ENABLE);/*!<SD_SPIenabletypedef{uint16_tuint16_tuint16_tuint16_tuint16_tuint16_tuint16_tuint16_tuint16_t}SPI_InitTypeDef;//spi參數(shù)結(jié)構(gòu)體uint8_tSPI_FLASH_SendByte(uint8_t{ whileSPI_I2S_GetFlagStatus(SPI2SPI_I2S_FLAG_TXERESET);//判斷是否發(fā)送完SPI_SendData8(SPI2,byte);//SPI/*Waittoreceiveabytewhile(SPI_I2S_GetFlagStatus(SPI2,SPI_I2S_FLAG_RXNE)==RESET);//是否已經(jīng)/*ReturnthebytereadfromtheSPIbusreturnSPI_ReceiveData8(SPI2);//SPI接79.uint32_t{uint32_tTemp=/*SelecttheFLASH:ChipSelectlow/*Send"RDID"instruction/*ReadabytefromtheFLASH/*DeselecttheFLASH:ChipSelecthighreturn100.PAGEPAGE7QF-QF- V1.0/uint32_t126.uint32_tTemp=0,Temp0=0,Temp1=0,Temp2=/*SelecttheFLASH:ChipSelectlow*//*Send"RDID"instruction/*ReadabytefromtheFLASH/*ReadabytefromtheFLASH/*ReadabytefromtheFLASH/*DeselecttheFLASH:ChipSelecthigh*/returnW25X16頁寫參考時(shí)序圖QF-V1.0QF-V1.0/PAGEPAGE8{/*EnablethewriteaccesstotheFLASH/*SelecttheFLASH:ChipSelectlow/*Send"WritetoMemory"instruction/*SendWriteAddrhighnibbleaddressbytetowriteto/*SendWriteAddrmediumnibbleaddressbytetowriteto/*SendWriteAddrlownibbleaddressbytetowritetoSPI_FLASH_SendByte(WriteAddr&{ /*whilethereisdatatobewrittenontheFLASHwhile(NumByteToWrite--{/*Sendthecurrentbyte/*Pointonthenextbytetobewritten /*DeselecttheFLASH:ChipSelecthigh/*WaittheendofFlashwriting162.QF-V1.0QF-V1.0/voidSPI_FLASH_SectorErase(uint32_t{/*Sendwriteenableinstruction/*SectorErase/*SelecttheFLASH:ChipSelectlow/*SendSectorEraseinstruction/*SendSectorAddrhighnibbleaddressbyte/*SendSectorAddrmediumnibbleaddressbyte/*SendSectorAddrlownibbleaddressbyteSPI_FLASH_SendByte(SectorAddr&/*DeselecttheFLASH:ChipSelecthigh/*WaittheendofFlashwriting183.void{/*Sendwriteenableinstruction/*BulkErase/*SelecttheFLASH:ChipSelectlow/*SendBulkErase /*DeselecttheFLASH:ChipSelecthigh/*WaittheendofFlashwriting199./********************CCOPYRIGHT2011青風(fēng)電子*文件名*描 :I2C讀寫(AT24C02)測(cè)試**實(shí)驗(yàn)平臺(tái):QF-STM32F051*庫版本**作 :青*/***頭文件調(diào)用#includeQF-V1.0QF-V1.0/#include#includetypedefenum{FAILED=0,PASSED=!FAILED}IOuint32_tDeviceID=IOuint32_tFlashID=IOTestStatusTransferStatus1=/* #define #define (sizeof(a)/ BufferSize(countof(Tx_Buffer)- uint8_tTx_Buffer[]=uint8_t236.* Comparestwo237.* pBuffer1,pBuffer2:bufferstobe238.* 239.*@retvalPASSED:pBuffer1identicalto240. 241.{{if(*pBuffer1!={return return256.voidDelay(IOuint32_t{for(;nCount!=0;nC{ // //POINT_COLORBLACKBACK_COLOR //

溫馨提示

  • 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)論