8 deb 71 eece 797498 c4db 253 cc 6b 0f fee _ 257.png (0bytes,下载次数: 60 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )。
2010-12-14 22:54上传
w25q64的SPI端子与w25x16相同,但只是选择电影进行了变更,请消除混乱
[mw_shl_code=c,true ] # defines pi _ flash _ pagesize 256
# defines pi _ flash _ perwritepagesize 256
(大意的糖
#define W25X_WriteEnable0x06
#define W25X_WriteDisable0x04
#define W25X_ReadStatusReg0x05
#define W25X_WriteStatusReg0x01
#define W25X_ReadData0x03
#define W25X_FastReadData0x0B
#define W25X_FastReadDual0x3B
#define W25X_PageProgram0x02
#define W25X_BlockErase0xD8
#define W25X智慧早晨0x20
#define W25X_ChipErase0xC7
#define W25X_PowerDown0xB9
# define w25 x _ release powerd own0 xab
#define W25X_DeviceID0xAB
# define w25 x _ manufactdeviceid0x 90
#define W25X_JedecDeviceID0x9F
#define WIP_FlagMask0x01 /疏忽的糖豆writeinprogress(WIP ) flag疏忽的糖豆/
#define Dummy_Byte0xA5
这是u32SPI_flashjmdny(void )
{
u32 Temp=0,Temp0=0,Temp1=0,Temp2=0;
疏忽的糖豆? SPI_FLASH? ? 疏忽的糖豆/
SPI_FLASH_CS_LOW (;
(疏忽的糖豆)? ID? ? ; ? ? 疏忽的糖豆/
SPI _ flashkkdyet (w25x _ jedec device id;
temp0=SPI _ flashkkdyet (dummy _ byte );
temp1=SPI _ flashkkdyet (dummy _ byte );
temp2=SPI _ flashkkdyet (dummy _ byte );
疏忽的糖豆? SPI_FLASH? ? 疏忽的糖豆/
SPI_FLASH_CS_HIGH (;
temp=(temp016 )|(temp 18 )| Temp2;
返回时间;
}
void SPI_FLASH_Test(void )
{
__IO uint32_t单身香水=0;
__IO uint32_t DeviceID=0;
疏忽的糖豆? SPI_Flash? ID大意的糖豆/
printf(r(n )? ID?0x%X ',单身香水;
疏忽的糖豆? ? SPI_Flash? ID? ? 疏忽的糖豆/
//if ()单身香水==W25X16_FLASH_ID ) )
{
疏忽的糖豆? SPI闪存? 疏忽的糖豆/
SPI_FLASH智慧的早晨(FLASHhpdgb;
printf(r(n )? SPI闪存? %s ',Tx_Buffer;
疏忽的糖豆? Tx_Buffer? SPI闪存? 疏忽的糖豆/
SPI_FLASHajdjm(tx_buffer,flash的美丽鞋垫,BufferSize );
疏忽的糖豆? SPI闪存? ? 疏忽的糖豆/
SPI_flash_bufferread(rx_buffer,FLASHcxdds,BufferSize );
疏忽的糖豆? 尸体; ? ? ? ? 疏忽的糖豆/
transfer status1=buffer CMP (tx _ buffer,Rx_Buffer,BufferSize );
传递==传输状态1 ) )。
{
printf(r(n )? ? ? nr ';
}
else
{
printf(r(n )? ? 明朝---? ? ? nr ';
}
疏忽的糖豆? SPI闪存? 疏忽的糖豆/
SPI_FLASH智慧的早晨(FLASHhpdgb;
疏忽的糖豆? SPI闪存? ? 疏忽的糖豆/
SPI_flash_bufferread(rx_buffer,FLASHcxdds,BufferSize );
疏忽的糖豆? 尸体; ? ? ? 疏忽的糖豆/
for (索引=0; 索引缓冲区大小; Index )
{
if(rx_buffer[index]!=0xFF )
{
TransferStatus2=FAILED;
}
}
传递==传输状态2 (if ) )。
{
printf(r(n )? 车? ?0xFF? ! nr ';
}
else
{
printf(r(n )? ? 明朝---? 车? ?0xFF! nr ';
}
if () PASSED==TransferStatus2) (PASSED==TransferStatus2) )
{
printf((r(nw25x16 )? ? nr ';
}
else
{
printf((r(nw25x16 )? ? ? nr ';
}
}
//else
//{
//printf((r(nw25x16? ? ? nr ';
//}
(疏忽的糖豆SPI闪光? ? 疏忽的糖豆/
SPI_Flash_PowerDown (; /mw_shl_code]
我的主板上有w25q16芯片。 w25Q64的外围电路就是按照这个制作的。 应该很合适,但是为什么连ID都读不懂呢……因为习惯使用主板上的芯片,所以实际上很难使用芯片。