27,374
社区成员
发帖
与我相关
我的任务
分享
void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)
{
u16 i;
for(i=0;i<NumToRead;i++)
{
pBuffer[i]=STMFLASH_ReadHalfWord(ReadAddr);//读取2个字节
ReadAddr+=2;//偏移2个字节
}
}
如果读取16个字节STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,16)
i会循环16次,但你的ReadAddr+=2;早已加到32去了,不对[/quote]还有你说的那点确实不多,我应该用&g_ink_detection,因为int a[5]; a是数组首元素的首地址,而&a是数组的首地址,所以应该用&a
void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)
{
u16 i;
for(i=0;i<NumToRead;i++)
{
pBuffer[i]=STMFLASH_ReadHalfWord(ReadAddr);//读取2个字节
ReadAddr+=2;//偏移2个字节
}
}
如果读取16个字节STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,16)
i会循环16次,但你的ReadAddr+=2;早已加到32去了,不对[/quote]这应该没问题吧,因为我写的时候多占用了一倍的容量,读的时候也是多读一倍,这样就相互抵消了
void STMFLASH_Read(u32 ReadAddr,u16 *pBuffer,u16 NumToRead)
{
u16 i;
for(i=0;i<NumToRead;i++)
{
pBuffer[i]=STMFLASH_ReadHalfWord(ReadAddr);//读取2个字节
ReadAddr+=2;//偏移2个字节
}
}
int getparam()
{
STMFLASH_Read(0x08007E00,(u16*)&g_ink_detection,sizeof(g_ink_detection));//&
}
int setparam()
{
STMFLASH_Write(0x08007E00,(u16*)&g_ink_detection,sizeof(g_ink_detection));//&
}