高级会员

- 积分
- 571
- 金钱
- 571
- 注册时间
- 2016-5-30
- 在线时间
- 87 小时
|
1金钱
想请教关于SPI实验的一个问题,就是void SPI_Flash_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite)
{
.....
else
{
secpos++;
secoff=0;
pBuffer+=secremain;
WriteAddr+=secremain;
NumByteToWrite-=secremain;
if(NumByteToWrite>4096)
secremain=4096;
else
secremain=NumByteToWrite;
}
}
其中的pBuffer+=secremain; 这句不解 pBuffer它本来就是指向 “const u8 TEXT_Buffer[]={"WarShipSTM32 SPI TEST"}; ”这个数组,为什么要偏移?
很不解 求解答一下,感激!
|
最佳答案
查看完整内容[请看2#楼]
前面好像还有一堆代码吧,前面执行下来把原来那个扇区里剩下可以写的地方都占满了,也就是写了secremain个字符,剩下的的还没写的要到下一个新的扇区去写,所以指针要向下偏原来secremain个字节才对呀,然后在判断剩下的字节有没有多余4096个要不要成扇区的写,如果没有多于4096个也就是在新的扇区就够写了,总体看来整个函数就是做到不浪费吧
|