一个版友MSP430驱动SST25VF016B程序一直有问题,特贴出我自己使用无问题的版本。
固件中,自己更改所使用的SPI口和初始化好SPI就行。
固件SST25_Init中,
u8 SST25_Init(void)
{
u8 m;
m = SST25_ReadFlashID(); //读Flash内部ID
if (m == SST25_RDID) //判断是否是SST25的ID
{
do
{
SST25_EnableWriteStatus(); //使能内部状态寄存器写功能
SST25_WriteFlashStatus(0x00); //上电必须写一次,写内部状态寄存器
m = SST25_ReadFlashStatus(); //读Flash内部寄存器
}
while (m); //内部寄存器写成功
SST25_ChipErase(); //擦写整个芯片
SST25_SDtoFlash(SD_ADDR_PIC1, FLASH_ADDR_PIC1, PIC_LENGTH_BYTE);//将SD卡中数据写入FLASH指定地址
do
{
SST25_WriteDisable(); //软件写禁能
SST25_EnableWriteStatus(); //使能内部状态寄存器写功能
SST25_WriteFlashStatus(0x9C); //写保护
m = SST25_ReadFlashStatus(); //读内部状态寄存器
}
while(m != 0x9c); //写保护成功
return FLASH_NO_ERR;
}
else
{
return FLASH_ERR; //初始化错误代码
}
}