初级会员

- 积分
- 79
- 金钱
- 79
- 注册时间
- 2012-6-25
- 在线时间
- 0 小时
|
我8G优士顿TF卡。程序可以读出容量7.2G 和CSD信息,就是读写都可以。。但是对扇区操作
u8 SD_WriteDisk(u8*buf,u32 sector,u8 cnt)
{
u8 r1;
// r1=cnt;
if(SD_Type!=SD_TYPE_V2HC)sector *= 512;//转换为字节地址
if(cnt==1)
{
r1=SD_SendCmd(CMD24,sector,0X01);//写命令
// return r1;
if(r1==0)//指令发送成功
{
r1=SD_SendBlock(buf,0xFE);//写512个字节
}
}
else
{
if(SD_Type!=SD_TYPE_MMC)
{
SD_SendCmd(CMD55,0,0X01);
SD_SendCmd(CMD23,cnt,0X01);//发送指令
}
r1=SD_SendCmd(CMD25,sector,0X01);//连续写命令
if(r1==0)
{
do
{
r1=SD_SendBlock(buf,0xFC);//写512个字节
buf+=512;
}while(--cnt && r1==0);
r1=SD_SendBlock(0,0xFD);//写512个字节完成
}
}
SD_DisSelect();//取消片选
return r1;//
}
经主函数中加SD_WriteDisk(a,15000,1)为什么测试R1有返回值2 ?
测试 ,问题出在
r1=SD_SendCmd(CMD24,sector,0X01);//写命令、、此处扇区sector的长度Cnt为1
|
|