新手上路
- 积分
- 40
- 金钱
- 40
- 注册时间
- 2020-2-23
- 在线时间
- 7 小时
|
- void W25QXX_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)
- {
- u16 pageremain;
- pageremain=256-WriteAddr%256; //单页剩余的字节数
- /*上面一行这里应该不是对WriteAddr的求余,应该是对NumByteToWrite的求余;结合下文可知*/
-
- if(NumByteToWrite<=pageremain)pageremain=NumByteToWrite;//不大于256个字节
- while(1)
- {
- W25QXX_Write_Page(pBuffer,WriteAddr,pageremain);
- if(NumByteToWrite==pageremain)break;//写入结束了
- else //NumByteToWrite>pageremain
- {
- pBuffer+=pageremain;
- WriteAddr+=pageremain;
- NumByteToWrite-=pageremain; //减去已经写入了的字节数
- if(NumByteToWrite>256)pageremain=256; //一次可以写入256个字节
- else pageremain=NumByteToWrite; //不够256个字节了
- }
- };
- }
复制代码 具体数据在w25qxx.c第155行,也不太确定是不是Bug,但是觉得是bug,如果是bug,逻辑就通顺了,前排小板凳围观。
|
|