本帖最后由 ltby00 于 2017-8-31 10:27 编辑
#define data1 4
#define data2 196
#define ADDR1 0x00E000
u8 funa(void)
{
u8 i, j , bufa[(data1 + data2 ) / 8 + ((data1 + data2 ) % 8 ? 1:0)]; //
SPI_FLASH_Read(bufa, ADDR1, (data1 + data2 ) / 8 + ((data1 + data2 ) % 8 ? 1:0) ); ///读SPI FLASH
for(i=0; i< (data1 + data2 ) / 8 + ((data1 + data2 ) % 8 ? 1:0); i++)
{
for(j=0; j<8; j++){
if(i<= data1 /8 && j< data1 ) continue;
if(bufa & 1<<j) return i*8 +j; ///是 if(bufa & 1<<j) return i*8 +j;
}
}
return 0xfe;
}
看不明白(data1 + data2 ) / 8 + ((data1 + data2 ) % 8 ? 1:0) 应该指向FLASH芯片内的地址, 但是表达的什么 ?
请教下大家!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
--------------------- 这个写法并不好,模除很没效率的,模除8,用and 7就可以了。
实际这样写更好: (data1 + data2 + 7 ) / 8
一周热门 更多>