//先消除保护位,再允许写位 void SST25WriteEn(void) { u8 sta; sta=SSTCmdb1b(0x05)&(~0x1c); //读出寄存器并消除保护位 SSTCmd1(0x50); //允许写寄存器 SSTCmd2(0x01,sta); //写寄存器 SSTCmd1(0x06); //允许写 }
/********************************** SST25ChipErase 刷除CHIP **********************************/ void SST25ChipErase(void) { SST25WriteEn(); SSTCmd1(0x60); while(SST25BY()); SST25WPEN(); }
/*********************************** SST25WPEN 允许软件写保护 注意事项:25的写入比较繁琐,建议在每次操作前都取消掉写保护,操作完成后则重新允许写保护 ***********************************/ void SST25WPEN(void) { u8 sta; sta=SSTCmdb1b(0x05)|0x1c; //读出寄存器并加入保护位 SSTCmd1(0x06); //允许写 SSTCmd2(0x01,sta); }
/*********************************** SST25WPEN 允许软件写保护 注意事项:25的写入比较繁琐,建议在每次操作前都取消掉写保护,操作完成后则重新允许写保护 ***********************************/ void SST25WPEN(void) { u8 sta; sta=SSTCmdb1b(0x05)|0x1c; //读出寄存器并加入保护位 SSTCmd1(0x50); //允许写Status Register SSTCmd2(0x01,sta); }
/*********************************** SST25WRDI 屏蔽写功能 ***********************************/ void SST25WRDI(void) { SSTCmd1(0x04); }
/*************************************** SST25WREN 允许写功能 ***************************************/ void SST25WREN(void) { SSTCmd1(0x06); }