请教SPI_Flash_Write_NoCheck()函数问题~

2019-08-20 18:36发布

void SPI_Flash_Write_NoCheck(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)  
{       
 u16 pageremain;   
 pageremain=256-WriteAddr%256; //单页剩余的字节数       
 if(NumByteToWrite<=pageremain)pageremain=NumByteToWrite;//不大于256个字节
 while(1)
 {   
  SPI_Flash_Write_Page(pBuffer,WriteAddr,pageremain);
  if(NumByteToWrite==pageremain)break;//写入结束了||pageremain的值一直就没变,这句判断语句怎么就能判断了?没能理解,求解答。。
   else //NumByteToWrite>pageremain
  {
   pBuffer+=pageremain;
   WriteAddr+=pageremain;     NumByteToWrite-=pageremain;     //减去已经写入了的字节数
   if(NumByteToWrite>256)pageremain=256; //一次可以写入256个字节
   else pageremain=NumByteToWrite;    //不够256个字节了
  }
 };    
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
正点原子
1楼-- · 2019-08-20 23:15
回复【楼主位】doulei129:
---------------------------------
怎么就没变了?
  NumByteToWrite-=pageremain;     //减去已经写入了的字节数
   if(NumByteToWrite>256)pageremain=256; //一次可以写入256个字节
   else pageremain=NumByteToWrite;    //不够256个字节了
这段代码你看不到?
doulei129
2楼-- · 2019-08-21 05:15
回复【2楼】正点原子:
---------------------------------
由于if(NumByteToWrite<=pageremain)pageremain=NumByteToWrite;//不大于256个字节

 if(NumByteToWrite==pageremain)break;//所以当第一次执行到这里的时候不就跳出循环了?
doulei129
3楼-- · 2019-08-21 06:16
回复【2楼】正点原子:
---------------------------------
原子哥,我完全理解了,谢谢你哈~劳烦你了~
SHIBO
4楼-- · 2019-08-21 07:47
我咋没理解呢

一周热门 更多>