高级会员

- 积分
- 506
- 金钱
- 506
- 注册时间
- 2014-1-24
- 在线时间
- 102 小时
|
[mw_shl_code=c,true]//add:写数据地址
void SPI_PageWrite(u32 add) //页写数据
{
u8 i=0;
Select_Flash(); //片选
wen(); //写使能
// SPI_Chip_Erase();
SPI_Flash_SendByte(0x02); /* send Byte Program command */
SPI_Flash_SendByte(((add & 0xFFFFFF) >> 16)); /* send 3 address bytes */
SPI_Flash_SendByte(((add & 0xFFFF) >> 8));
SPI_Flash_SendByte(add & 0xFF);
for (i=0;i<256;i++)
{
SPI_Flash_SendByte(0x55); //写数据0x55
}
wip(); //忙检测
NotSelect_Flash(); //取消片选
}
//add:读字节地址
u8 ReadByte(u32 add) //读字节
{
u8 byte = 0;
Select_Flash(); //片选
SPI_Flash_SendByte(0x03); /* read command */
SPI_Flash_SendByte(((add & 0xFFFFFF) >> 16)); /* send 3 address bytes */
SPI_Flash_SendByte(((add & 0xFFFF) >> 8));
SPI_Flash_SendByte(add & 0xFF);
byte = SPI_Flash_ReadByte();
NotSelect_Flash(); //取消片选 /* disable device */
return byte; /* return one byte read */
}[/mw_shl_code]
走硬件SPI,都芯片ID和读写寄存器都正常,但是无法写入数据,读到的全是0XFF。麻烦各位看看读写函数有什么问题吗?SPI芯片是SST26VF032B ,已经解除全局保护。
|
|