单片机读写SD卡API模式读写

单片机读写SD卡API模式读写

ID:68323735

大小:42.00 KB

页数:11页

时间:2021-09-26

单片机读写SD卡API模式读写_第1页
单片机读写SD卡API模式读写_第2页
单片机读写SD卡API模式读写_第3页
单片机读写SD卡API模式读写_第4页
单片机读写SD卡API模式读写_第5页
单片机读写SD卡API模式读写_第6页
单片机读写SD卡API模式读写_第7页
单片机读写SD卡API模式读写_第8页
单片机读写SD卡API模式读写_第9页
单片机读写SD卡API模式读写_第10页
资源描述:

《单片机读写SD卡API模式读写》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、--单片机读写SD卡最简单最根本的程序处理器:s3c44b0〔arm7〕SD卡与处理器的引脚连接:MISO-->SIORxD  MOSI-->SIOTxD  CLK-->SCLK  CS-->PE5四个文件:sd_drive.c:用户API函数,移植时不需修改                        sd_cmd.c:中间层函数,移植时不需修改                        sd_hard.c:硬件层函数,移植时需修改                        sd_config.h:一些功能的宏定义,移植时需修改第一次读写

2、SD卡时,需调用SD_Init(void),然后就可以条用Read_Single_Block或者Write_Single_Block进展读写操作注意:进展写操作时,最好不要写前700个扇区,应为这些扇区都是FAT文件系统的重要扇区,一旦误写那么可能会导致SD无法被电脑识别,需格式化。/*******************************************************文件名:sd_drive.c作用:用户API函数,包括四个函数,          读取一块扇区〔512字节〕U8Read_Single_Block(U32bl

3、k_addr,U8*rx_buf)          写一个扇区〔512字节〕U8Write_Single_Block(U32blk_addr,U8*tx_buf)          获取SD卡根本信息,即读CSD存放器信息〔16字节〕:voidSD_info()          SD卡初始化:U8SD_Init(void)********************************************************//********************************************功能:读取一个block

4、输入:blk_addr为第几个block,rx_buf为数据缓存区首地址输出:返回NO_ERR那么成功,其它那么读取失败********************************************/U8Read_Single_Block(U32blk_addr,U8*rx_buf){U16rsp=1;U8i=0;SD_sel();     //使能SD卡while(rsp&&(i<100)){  write_cmd(CMD17,blk_addr<<9);-word.zl--//写命令CMD17  rsp=Get_rsp(R1);    /

5、/获取容许  send_clk();}if(i>99)     //如果命令超时,那么执行超时处理     {  SD_desel();  Uart_Printf("failinwritingCMD17");  returnWR_SGL_BLK_ERR;}spi_ro_mode();send_clk();        //发送8个clkread_data(rx_buf);//读取512字节SD_desel();   Uart_Printf("succeedinreadingthe%dstblock!!!",blk_addr);returnN

6、O_ERR;}/********************************************功能:写一个block输入:blk_addr为要写第几个block,tx_buf为数据区输出:返回NO_ERR那么成功,其它那么读取失败********************************************/U8Write_Single_Block(U32blk_addr,U8*tx_buf){U16rsp=1;U8i=0;SD_sel();     //使能SD卡while(rsp&&(i<100)){  write_cmd(C

7、MD24,blk_addr<<9);//写命令CMD24  rsp=Get_rsp(R1);    //获取容许  send_clk();}if(i>99)     //如果命令超时,那么执行超时处理     {  SD_desel();  Uart_Printf("failinwritingCMD17");  returnWR_SGL_BLK_ERR;}spi_ro_mode();send_clk();         //发送8个clkwrite_data(tx_buf);//读取512字节SD_desel();   Uart_Printf(

8、"succeedinwritingablock!!!");return-word.zl--NO_ERR;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。