保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

单片机实现对CF卡的读写


R—数据错误但被修正,不会终止多扇区读操作;

ERR—在上一命令以某种错误结束,可以在错误寄存器中查看错误类型。

下面以向CF卡写一个扇区数据为例,给出图4所示流程和C程序代码。

bit flag_1,flag_2;

void cfwr()

{

unsigned char status;

cfwr_comm(0xe0,0x00,0x00,0x6c);

//写参数命令,指向逻辑6c扇区

do{status=PBYTE[0x07]; //读状态寄存器

if((status & 0x01)==0x01)

flag_1=1; //若ERR=1,置出错标志,做相应处理

while(status!=0x58);

cfwr_dat(); //写入数据

do{status=PBYTE[0x07]; //读状态寄存器

if((status & 0x20)==0x20)

flag_2=1; //若DWF=1时,置出错标志,做相应处理

while(status!=0x50);

}

void cfwr_comm(unsigned char lba27,lba23,la15,lba7) //写参数命令函数

{PBYTE[0x02] 扇区数为1

PBYTE[0x03]=lba7;

PBYTE[0x04]=la15;

PBYTE[0x05]=lba23;

PBYTE[0x06]=lba27; //设定LBA方式

PBYTE[0x07]=0x30; //送写入命令30H

}

void cfwr_dat() //写数据函数

{unsigned int i,temp;

unsigned char xdata dat[512]; //dat[]存放一个扇区的数据

for (i=0;i<512;i++) //连续写512字节

{P1=P1 & 0xf8; //选中外部RAM

temp=dat[i];

P1++; //根据实际电路选择中CF卡

PBYTE[0x00]=temp;}

}

5 结论

《单片机实现对CF卡的读写(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/165315.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。