初级会员

- 积分
- 158
- 金钱
- 158
- 注册时间
- 2017-11-5
- 在线时间
- 31 小时
|
1金钱
原子哥,开源电子网的各位大神,最近我在用FATFS写SD卡,将ADC的数据写入SD卡,
ADC是24bit的,采样率10KSPS,8个通道,采集信号源输出的正弦波,将存储的数据还原时发现波形不连续,即有丢失点的现象。
SD卡一次性写入65536个字节,采用的DMA模式。
u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt)
{
u8 sta=SD_OK;
u8 n;
long long lsector=sector;
lsector<<=9;
if((u32)buf%4!=0)
{
for(n=0;n<cnt;n++)
{
memcpy(SDIO_DATA_BUFFER,buf,512);
sta=SD_WriteBlock(SDIO_DATA_BUFFER,lsector+512*n,512);//单个sector的写操作
buf+=512;
}
}else
{
if(cnt==1)sta=SD_WriteBlock(buf,lsector,512); //单个sector的写操作
else sta=SD_WriteMultiBlocks(buf,lsector,512,cnt); //多个sector
}
return sta;
}
对原子哥的这段代码有点疑惑,就是对那个buf,就是一个地址,为啥要对4求余啊???
|
最佳答案
查看完整内容[请看2#楼]
参考下这个:http://www.openedv.com/forum.php?mod=viewthread&tid=281812
|