注册 登录
查看: 374|回复: 2

SDHC读写问题

[复制链接]
发表于 2014-12-6 09:54:35 | 显示全部楼层 |阅读模式
  1. 第九章中,附加的代码SDHC,我没有看到SDHC的初始化在哪里?


回复

使用道具 举报

 楼主| 发表于 2014-12-6 10:01:15 | 显示全部楼层
  1. /*!
  2. 忘记附上代码了,我用的是第九章的代码,每次都返回“没插入SD卡??”,可是我用别人的代码下载进去可以正常,这到底为什么,哪一个语句是端口初始化呢?

  3. *     COPYRIGHT NOTICE
  4. *     Copyright (c) 2013,山外科技
  5. *     All rights reserved.
  6. *     技术讨论:山外初学论坛 http://www.vcan123.com
  7. *
  8. *     除注明出处外,以下所有内容版权均属山外科技所有,未经允许,不得用于商业用途,
  9. *     修改内容时必须保留山外科技的版权声明。
  10. *
  11. * @file       main.c
  12. * @brief      山外K60 平台主程序
  13. * @author     山外科技
  14. * @version    v5.0
  15. * @date       2013-08-28
  16. */

  17. #include "common.h"
  18. #include "include.h"

  19. #define BUFF_SIZE   100

  20. /*!
  21. *  @brief      main函数
  22. *  @since      v5.0
  23. *  @note       山外SD卡 FatFS实验
  24. */
  25. void  main(void)
  26. {
  27.     FIL     fdst;   //文件
  28.     FATFS   fs;     //文件系统

  29.     uint32 size, sizetmp;
  30.     int res;
  31.     char *str = "感谢您选用 山外Kinetis开发板 !^_^\n山外初学123论坛:vcan123.com";
  32.     uint8 buff[BUFF_SIZE];

  33.     memset(buff,0,BUFF_SIZE);

  34.     f_mount(0, &fs);                                                               //挂载文件系统

  35.     //初始化 SD卡 在 f_open 上执行,目前代码只支持打开一个文件(由 _FS_SHARE 配置),频繁打开文件会消耗CPU资源
  36.     res = f_open(&fdst, "0:/FireDemo.txt", FA_OPEN_ALWAYS | FA_WRITE | FA_READ);  //打开文件,如果没有就创建,带读写打开

  37.     if( res == FR_DISK_ERR)
  38.     {
  39.         printf( "\n没插入SD卡??\n" );
  40.         return;
  41.     }
  42.     else if ( res == FR_OK )
  43.     {
  44.         printf( "\n文件打开成功 \n" );
  45.     }
  46.     else
  47.     {
  48.         printf("\n返回值异常");
  49.         return;
  50.     }

  51.     printf("\n字符串长度为:%d",strlen(str));

  52.     f_puts(str, &fdst);                     //往文件里写入字符串

  53.     f_sync(&fdst);                          //刚才写入了数据,实际上数据并没真正完成写入,需要调用此函数同步或者关闭文件,才会真正写入

  54.     size = f_size(&fdst);                   //获取文件的大小

  55.     printf( "\n文件大小为:%d \n" , size);  //串口打印文件的大小

  56.     if(size > BUFF_SIZE)size = BUFF_SIZE;   //防止溢出

  57.     f_lseek(&fdst, 0);                      //把指针指向文件顶部
  58.     f_read (&fdst, buff, size, &sizetmp);   //读取

  59.     printf("文件内容为:\n%s", (char const *)buff);

  60.     f_close(&fdst);                         //关闭文件
  61. }
回复 支持 反对

使用道具 举报

发表于 2014-12-6 12:16:14 | 显示全部楼层
有可能是代码不兼容你的卡。或者你的文件系统。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部