SPI实验的问题

2019-07-20 17:16发布

想请教关于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"}; ”这个数组,为什么要偏移?
很不解 求解答一下,感激!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
zhu83453958
1楼-- · 2019-07-20 20:56
前面好像还有一堆代码吧,前面执行下来把原来那个扇区里剩下可以写的地方都占满了,也就是写了secremain个字符,剩下的的还没写的要到下一个新的扇区去写,所以指针要向下偏原来secremain个字节才对呀,然后在判断剩下的字节有没有多余4096个要不要成扇区的写,如果没有多于4096个也就是在新的扇区就够写了,总体看来整个函数就是做到不浪费吧
pcqboys
2楼-- · 2019-07-20 22:51
zhu83453958 发表于 2017-1-15 20:06
前面好像还有一堆代码吧,前面执行下来把原来那个扇区里剩下可以写的地方都占满了,也就是写了secremain个 ...

但是下面那行WriteAddr+=secremain; 说明写地址已经是偏移了, pBuffer只管待写入数组。
pcqboys
3楼-- · 2019-07-21 00:59
zhu83453958 发表于 2017-1-15 18:49
前面好像还有一堆代码吧,前面执行下来把原来那个扇区里剩下可以写的地方都占满了,也就是写了secremain个 ...

原子的意思是不是如果判断出那个扇区是写不完那就不在那个扇区写了,直接移到下一个扇区写??
pcqboys
4楼-- · 2019-07-21 02:08
 精彩回答 2  元偷偷看……

一周热门 更多>