📄 mmc.c
字号:
#include<stdio.h>
#include<csl.h>
#include<csl_mmc.h>
MMC_Config mmcconfig=
{
0x0000,//mmcctl
0x0000,//mmcfclk idle=0,fdiv=
0x0000,//mmcclk clken=1,cdiv=
0x0000,//mmcie 所有中断关
0x0000,//mmctor 不检查超时
0x0000,//mmctod 不检查超时
0x0200,//mmcblen 数据块有512bytes
0x0001 //mmcnblk 一个数据块
};
MMC_Handle mymmc;
MMC_CardIdObj *cardid ;
MMC_CardObj *card ;
Uint16 datawrite[512],datareceive[512],*dataptr;
main()
{
Uint16 i,temp,err=0;
dataptr=datawrite;
CSL_init();
for(i=0;i<512;i++) {datawrite[i]=i;}//初始化数组
mymmc=MMC_open(MMC_DEV1); //打开mmc2,与mcbsp2复用
MMC_config(mymmc,&mmcconfig);
MMC_sendGoIdle(mymmc); //命令所有卡复位
MMC_sendOpCond(mymmc,0x00100000); //设定卡的工作电压为3.2V-3.3V
MMC_sendAllCID(mymmc,cardid); //命令所有卡广播它们唯一的CID号
MMC_setRca(mymmc,card,1); //设定卡的相对地址
for(i=0;i<100;i++) {}; //延时
temp=MMC_selectCard(mymmc,card); //选择卡
MMC_write(mymmc,0,dataptr,512) ; //写512个字节数据到卡
for(i=0;i<100;i++) {}; //延时
dataptr=datareceive;
temp=MMC_selectCard(mymmc,card); //选择卡
MMC_read(mymmc,0,dataptr,512); //读512个字节数据到数组
for(i=0;i<512;i++)
{if(datawrite[i]!=datareceive[i]) err++;}
if(err==0) printf("mmc operation is successful");
else printf("mmc operation is failed");
MMC_close(mymmc);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -