資源簡介
spiflash w25q128驅動函數 包含block擦數,sector擦數 頁寫 多頁寫 頁讀 多頁讀函數 已調試通過
代碼片段和文件信息
/*****************************************************************************
**?文件名稱:flash.c
**?功????能:
**?修改日志:
******************************************************************************/
#include?“includes.h“
/*****************************************************************************
**?文件名稱:uint8_t?SpiFlash_ReadOneByte(void)
**?功????能:
**?修改日志:
******************************************************************************/
uint8_t?SpiFlash_ReadOneByte(void)
{
????uint8_t?BitCount?=?0;
????uint8_t?retValue?=?0;
????SPIFlash_Set_SCLK;????????????//時鐘線拉高恢復時鐘線為高電平
????for(BitCount?=?0;BitCount?8;?BitCount++)
????{
????????retValue?<<=?1;
????????SPIFlash_Set_SCLK;????????????//時鐘線拉高恢復時鐘線為高電平
????????if(SPIFlash_Get_DI)
????????{
????????????retValue?|=?0x01;
????????}
????????else
????????{
????????????retValue?&=?0xFE;
????????}
????????SPIFlash_Clr_SCLK;????????????//時鐘線拉低產生下降沿讀出數據
????}
????SPIFlash_Set_SCLK;
????return?(retValue);
}
/*****************************************************************************
**?文件名稱:void?SpiFlash_WriteOneByte(uint8_t?DataBuffer)
**?功????能:
**?修改日志:
******************************************************************************/
void?SpiFlash_WriteOneByte(uint8_t?DataBuffer)
{
????uint8_t?BitCount?=?0;
????SPIFlash_Clr_SCLK;??????????//時鐘線拉低,恢復時鐘線為低電平
????for(BitCount?=?0;BitCount?8;?BitCount++)
????{
????????SPIFlash_Clr_SCLK;??????????//時鐘線拉低,恢復時鐘線為低電平
????????if(DataBuffer?&?0x80)
????????{
????????????SPIFlash_Set_DO;
????????}
????????else
????????{
????????????SPIFlash_Clr_DO;
????????}
????????DataBuffer?<<=?1;
????????SPIFlash_Set_SCLK;????????????//時鐘線拉高,產生上升沿寫入數據
????}
????SPIFlash_Clr_SCLK;
????SPIFlash_Set_DO;????????????????//一字節數據傳送完畢,MOSI數據線置高表示空閑狀態
}
/*****************************************************************************
**?文件名稱:static?uint8_t?SpiFlash_Write_CMD(uint8_t?*CMD)
**?功????能:
**?修改日志:
******************************************************************************/
static?uint8_t?SpiFlash_Write_CMD(uint8_t?*CMD)
{
????uint32_t?i?=?0;
????for(i?=?0;i?????{
????????SpiFlash_WriteOneByte(CMD[i]);??//打開SD卡的片選信號并寫入命令數據
????}
????return?RET_SUCCESS;
}
/*****************************************************************************
**?文件名稱:static?uint8_t?SpiFlash_ReadSR(void)
**?功????能:
**?修改日志:
******************************************************************************/
static?uint8_t?SpiFlash_ReadSR(void)
{
????uint8_t?retValue?=?0;
????SPIFlash_Enable_CS;
????SpiFlash_WriteOneByte(SPIFlash_ReadSR_CMD);
????retValue?=?SpiFlash_ReadOneByte();
????SPIFlash_Disable_CS;
????return?retValue;
}
/*****************************************************************************
**?文件名稱:static?uint8_t?SpiFlash_Wait_Busy(void)
**?功????能:
**?修改日志:
******************************************************************************/
static?uin
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3265??2013-12-05?14:15??flash\flash.h
?????文件??????15813??2013-12-05?15:57??flash\flash.c
?????目錄??????????0??2013-11-28?15:41??flash
-----------?---------??----------?-----??----
????????????????19078????????????????????3
評論
共有 條評論