CH32V103开发板的W25Q16读写验证单片机解密
单片机解密CH32V103开发板上配置了W25Q16存储器,其接口电路如图1所示。
此外,单片机解密官方还提供了测试例程。其实,从程序看它是一个W25QXX系列的广谱测试程序,所支持的芯片有:
W25Q80、 W25Q16、 W25Q32、W25Q64及W25Q128,除了容量不同外,也就剩下名称不同了。
由于是例程,大家都能得的到,程序就不在这里提供了。
其实际的测试过程主要有下列语句实现:
printf("Start Write W25Qxx....\r\n");
SPI_Flash_Write((u8*)TEXT_Buf,0,SIZE);
printf("W25QxxWrite Finished!\r\n");
Delay_Ms(500);
printf("Start ReadW25Qxx....\r\n");
SPI_Flash_Read(datap,0x0,SIZE);
printf("%s\r\n", datap );
Delay_Ms(500);
printf("Start Erase W25Qxx....\r\n");
SPI_Flash_Erase_Sector(0);
printf("W25Qxx EraseFinished!\r\n");
Delay_Ms(500);
printf("Start ReadW25Qxx....\r\n");
SPI_Flash_Read(datap,0x0,SIZE);
printf("%s\r\n", datap );
也就是说,它是按照这样的流程来处理的,即:
写入-->读取--->显示-->删除-->读取
在对程序编译后,给出的提示为:

天哪,23个错误!
仔细一看,错误只是一种,原始而又低级,竟像使用单片机一样直接通过赋值0和1来输出高低电平!
以函数SPI_Flash_ReadID()为例,其原内容为:

修改后,其内容则为:


芯片解密