久久久久久久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://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
午夜精品一区二区三区免费视频
|
欧美片网站免费
|
午夜理伦三级理论三级在线观看
|
中文在线视频
|
国产真实精品久久二三区
|
国产在视频一区二区三区吞精
|
九九久久精品
|
亚洲一区二区三区在线播放
|
av大片在线
|
国产日韩欧美综合
|
丁香婷婷综合激情五月色
|
国产精品色
|
日韩精品久久一区
|
成人一区二区三区在线观看
|
亚洲一区二区在线视频
|
免费国产视频
|
日本三级全黄三级a
|
久久久久国色av免费观看性色
|
午夜精品一区二区三区在线视频
|
一区二区三区四区国产精品
|
99久久精品免费看国产免费软件
|
久久精品男人的天堂
|
亚洲入口
|
欧美日韩a
|
国产一区久久久
|
国产成人精品一区二区三区四区
|
99久久99
|
www.9191
|
小h片免费观看久久久久
|
在线国产欧美
|
一区二区三区精品视频
|
日韩一区不卡
|
天天曰天天曰
|
一级片子
|
日韩视频a
|
日韩中文在线
|
毛片99
|
午夜精品久久久久久久星辰影院
|
给我免费的视频在线观看
|
www.夜夜草
|
免费激情
|