久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
16MB的FLASHW25Q128驅動
[打印本頁]
作者:
xiaos
時間:
2015-4-10 17:00
標題:
16MB的FLASHW25Q128驅動
#define SPI_SCK_LOW() GPIOB->ODR&=~(1<<3)
#define SPI_SCK_HIGH() GPIOB->ODR|=1<<3
#define SPI_MOSI_LOW()GPIOB->ODR&=~(1<<5)
#define SPI_MOSI_HIGH()GPIOB->ODR|=1<<5
#define SPI_CS_LOW()GPIOB->ODR&=~(1<<14)
#define SPI_CS_HIGH() GPIOB->ODR|=1<<14
#define SPI_MISO_Read()(GPIOB->IDR&(1<<4))
#define W25X_WriteEnable 0x06 //寫允許命令
#define W25X_WriteDisable 0x04 //禁止命令
#define W25X_ReadStatusReg 0x05 //讀狀態寄存器
#define W25X_WriteStatusReg 0x01 //寫狀態寄存器
#define W25X_ReadData 0x03 //讀數據
#define W25X_FastReadData 0x0B //快讀
#define W25X_FastReadDual 0x3B
#define W25X_PageProgram 0x02 //頁寫
#define W25X_BlockErase 0xD8 //快擦除
#define W25X_SectorErase 0x20 //扇區擦除
#define W25X_ChipErase 0xC7 //整盤擦除
#define W25X_PowerDown 0xB9 //低功耗
#define W25X_ReleasePowerDown 0xAB
#define W25X_DeviceID 0xAB
#define W25X_ManufactDeviceID 0x90
#define W25X_JedecDeviceID 0x9F
static void SPI_SendByte(uint8_t Byte) //使用SPI總線發送1個字節的數據
{
//uint8_t Cnt;
//SPI_SCK_LOW();
//for(Cnt=0;Cnt<8;Cnt++)
//{
//if(Byte&0x80)
//SPI_MOSI_HIGH();
//else
//SPI_MOSI_LOW();
//SPI_SCK_HIGH();
//Byte<<=1;
//SPI_SCK_LOW();
//}
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
SPI_I2S_SendData(SPI1,Byte);
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
SPI_I2S_ReceiveData(SPI1);
}
static uint8_t SPI_ReceiveByte(void) //使用SPI總線接收1個字節的數據
{
//uint8_t Byte=0,Cnt;
////GPIOB->ODR|=1<<4;
//for(Cnt=0;Cnt<8;Cnt++)
//{
//SPI_SCK_HIGH();
//Byte<<=1;
//if(SPI_MISO_Read())
//Byte++;
//SPI_SCK_LOW();
//}
//return Byte;
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
SPI_I2S_SendData(SPI1,0xff);
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
return SPI_I2S_ReceiveData(SPI1);
}
/************************FLASH****************************/
uint8_t FLASH_ReadStatusReg(void) //讀狀態寄存器
{
uint8_t Status;
SPI_CS_LOW();
SPI_SendByte(W25X_ReadStatusReg);
Status=SPI_ReceiveByte();
SPI_CS_HIGH();
return Status;
}
void FLASH_WriteEnable(void)
{
SPI_CS_LOW();
SPI_SendByte(W25X_WriteEnable);
SPI_CS_HIGH();
}
void FLASH_WriteByte(uint32_t Address,uint8_t Byte)
{
FLASH_WriteEnable();//改變磁盤的操作都需要寫允許命令
SPI_CS_LOW();
SPI_SendByte(W25X_PageProgram);
SPI_SendByte(Address>>16);
SPI_SendByte(Address>>8);
SPI_SendByte(Address);
SPI_SendByte(Byte);
SPI_CS_HIGH();
while(FLASH_ReadStatusReg()&0x01);
}
void FLASH_ReadByte(uint32_t Address ,uint8_t *pByte)
{
SPI_CS_LOW();
SPI_SendByte(W25X_ReadData);
SPI_SendByte(Address>>16);
SPI_SendByte(Address>>8);
SPI_SendByte(Address);
*pByte=SPI_ReceiveByte();
SPI_CS_HIGH();
}
uint16_t FLASH_ReadID(void)
{
uint16_t Temp=0;
SPI_CS_LOW();
SPI_SendByte(W25X_ManufactDeviceID);
SPI_SendByte(0x00);
SPI_SendByte(0x00);
SPI_SendByte(0x00);
Temp|=SPI_ReceiveByte()<<8;
Temp|=SPI_ReceiveByte();
SPI_CS_HIGH();
return Temp;
}
void FLASH_Erase_Sector(uint32_t Address)
{
FLASH_WriteEnable();
while(FLASH_ReadStatusReg()&0x01);
SPI_CS_LOW();
SPI_SendByte(W25X_SectorErase);
SPI_SendByte(Address>>16);
SPI_SendByte(Address>>8);
SPI_SendByte(Address);
SPI_CS_HIGH();
while(FLASH_ReadStatusReg()&0x01);
}
void FLASH_Wrase_Chip(void)
{
FLASH_WriteEnable();
SPI_SendByte(0x00);
while(FLASH_ReadStatusReg()&0x01);
SPI_CS_LOW();
SPI_SendByte(W25X_ChipErase);
SPI_CS_HIGH();
while(FLASH_ReadStatusReg()&0x01);
}
復制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日韩一区在线播放
|
av观看免费
|
日韩免费在线观看视频
|
日韩在线免费观看视频
|
亚洲一级黄色片
|
亚洲精品一二区
|
国产精品理论
|
韩国理论在线
|
成人小视频在线
|
日韩国产精品视频
|
四虎永久网址
|
www.中文字幕
|
国产精品久久网
|
av不卡在线观看
|
大桥未久在线视频
|
色大师av
|
999毛片
|
亚洲国产成人精品女人久久久
|
色婷婷久久综合
|
欧洲色综合
|
亚洲天天操
|
欧美成人综合
|
欧美日韩成人一区二区三区
|
少妇高潮久久久久久潘金莲
|
国产精品99久久久久久久久
|
毛片免费播放
|
亚洲精品一区二区在线观看
|
日韩在线视频一区二区三区
|
www.草逼
|
色黄大色黄女片免费中国
|
亚洲综合影院
|
日韩久久久久
|
欧美一区视频
|
www欧美
|
日韩亚洲天堂
|
中文在线一区
|
国产免费一区二区三区免费视频
|
亚洲iv一区二区三区
|
久久国内精品
|
91看片网
|
国产网址
|