注册 登录
查看: 7109|回复: 121

[鹰眼] 山外鹰眼 sd卡保存图像代码

[复制链接]
发表于 2013-5-16 08:03:30 | 显示全部楼层 |阅读模式
之前已经提供过保存SD卡图片的例程,但那个例程效率不高,现在改用下面这种方法:


山外提供两个函数,用于保存sd卡图像,需要往工程里加入sd卡的相关驱动文件的哦。

首先调用初始化代码:img_sd_init();

采集包图像后,保存图像是调用此函数: img_sd_save((u8 * )img_bin_buff);         

img_bin_buff 为图像的地址,摄像头初始化的时候:Ov7725_Init(img_bin_buff);   就是把图像数据写到 img_bin_buff

代码如下:
  1. FATFS firefs;    //文件系统
  2. FIL   firesrc;  //文件

  3. void img_sd_init(void)
  4. {
  5.     int   fireres;
  6.     char  myfilename[20];
  7.     u16 imgsize[] = {CAMERA_H, CAMERA_W};
  8.     u32 mybw;
  9.     u32 Imag_num = 0;
  10.    
  11.     f_mount(0, &firefs);
  12.    
  13.     do
  14.     {
  15.         Imag_num ++;
  16.         sprintf(myfilename, "0:/Fire%d.sd", Imag_num);
  17.         fireres = f_open( &firesrc , myfilename, FA_CREATE_NEW | FA_WRITE);

  18.         if(firefs.fs_type == 0)
  19.         {
  20.             firesrc.fs = 0;
  21.             return;
  22.         }

  23.     }while(fireres == FR_EXIST);        //如果文件存在,则命名继续加1
  24.    
  25.     if ( fireres == FR_OK )
  26.     {
  27.         fireres = f_write(&firesrc, imgsize, sizeof(imgsize), (UINT *)&mybw);  //先写入高和宽,方便上位机处理
  28.     }
  29.     else
  30.     {
  31.         f_close(&firesrc);
  32.         firesrc.fs = 0;
  33.     }
  34. }

  35. void img_sd_save(u8 * imgaddr)
  36. {
  37. #define SD_ONEWRITE_MAX 600   //旧库(5.0之前的)一次写入太大会出错,新库修复了bug,所以新库此值可取比较大。

  38.     int   fireres;
  39.     u32 mybw;
  40.     static u8 time = 0;
  41.     u32 size = CAMERA_SIZE;

  42.     if(firesrc.fs != 0)
  43.     {
  44.         time ++;

  45.         while(size > SD_ONEWRITE_MAX)
  46.         {
  47.             fireres = f_write(&firesrc, imgaddr, SD_ONEWRITE_MAX , (UINT *)&mybw);  
  48.             imgaddr +=   SD_ONEWRITE_MAX;  
  49.             size -=  SD_ONEWRITE_MAX;
  50.         }
  51.         
  52.         fireres = f_write(&firesrc, imgaddr, size , (UINT *)&mybw);  
  53.         
  54.         if(fireres != FR_OK)
  55.         {
  56.             f_close(&firesrc);
  57.             firesrc.fs = 0;
  58.         }
  59.         
  60.         if(time > 30)
  61.         {
  62.             time = 0 ;
  63.             f_sync(&firesrc);
  64.         }
  65.     }
  66. }
上述例程是间隔一段时间保存一次的(f_sync(&firesrc);),保存过程中消耗较多时间,如果能保证不会突然断点,可以车停了后,按下按键手动保存图像。

本帖被以下淘专辑推荐:

回复

使用道具 举报

 楼主| 发表于 2013-5-16 08:06:22 | 显示全部楼层
这函数是 把图像数据写到 sd 卡,但还需要用上位机把sd卡的图像数据进行处理,生成 图像文件。
上位机的使用,见附件里的说明。



生成的格式未必适合大家的需求。如果想批量转换,请看这帖子:
鹰眼SD卡解压出图像后的批量格式转换问题 - 智能车讨论区 - http://www.vcan123.com/forum.php ... ;tid=4265&page=

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-12-12 13:30:46 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-12 12:20
请问SD卡与单片机的接口是怎么样的呢?

参考我们提供的原理图就知道,我们用的是 SDHC 接口

【山外K60】一天攻破k60视频和代码 - 一天攻破K60 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... &extra=page%3D1
回复 支持 0 反对 1

使用道具 举报

发表于 2013-5-17 09:48:19 | 显示全部楼层
晕...一次最多只写600字节...还是单扇区写啊...怎么能够多扇区写呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-17 15:54:53 | 显示全部楼层
huanyefeng0809 发表于 2013-5-17 09:48
晕...一次最多只写600字节...还是单扇区写啊...怎么能够多扇区写呢?

有更高要求的,请自行编写哦。
回复 支持 反对

使用道具 举报

发表于 2013-12-12 12:20:59 | 显示全部楼层
请问SD卡与单片机的接口是怎么样的呢?
回复 支持 反对

使用道具 举报

发表于 2013-12-13 12:43:01 | 显示全部楼层
Admin 发表于 2013-12-12 13:30
参考我们提供的原理图就知道,我们用的是 SDHC 接口

【山外K60】一天攻破k60视频和代码 - 一天攻破K60  ...

你们是直接将SD卡接到E0、1、2、3、4、5口和C18口啊,这样可以吗?不用接限流电阻和上啦电阻吗?C18口就是CHEAK口,这个不用接一些外围电路吗?
回复 支持 反对

使用道具 举报

发表于 2013-12-13 12:51:43 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-13 12:43
你们是直接将SD卡接到E0、1、2、3、4、5口和C18口啊,这样可以吗?不用接限流电阻和上啦电阻吗?C18口就是 ...

C18 可不接。

只需要 接 E0~E5 即可。

K60 本来就是 3.3V IO 口,跟 SD卡一致,无需 限流电阻。 关于上拉电阻,本来程序里控制 IO 上拉了,所以不需要外部上拉
回复 支持 反对

使用道具 举报

发表于 2013-12-13 12:54:46 | 显示全部楼层
Admin 发表于 2013-12-13 12:51
C18 可不接。

只需要 接 E0~E5 即可。

哦,好的,谢谢了哈,关于采集程序我有问题向您请教哦,发现问题了第一时间会向你们反映的
回复 支持 反对

使用道具 举报

发表于 2013-12-13 13:06:31 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-13 12:54
哦,好的,谢谢了哈,关于采集程序我有问题向您请教哦,发现问题了第一时间会向你们反映的

好的,非常感谢
回复 支持 反对

使用道具 举报

发表于 2013-12-14 09:11:30 | 显示全部楼层
SD卡按你们原理图接,然后用你们第九章的程序,怎么老是返回FR_DISK_ERR,串口显示没插入SD卡呢?
回复 支持 反对

使用道具 举报

发表于 2013-12-14 09:31:20 | 显示全部楼层
#define     SDCARD_BLOCK_SIZE       512                     //SD卡块大小,这是SD卡的大小吗?应该我用1G的也没关系吧,不用修改这个吧
回复 支持 反对

使用道具 举报

发表于 2013-12-14 09:49:35 | 显示全部楼层
在ff.c里的第2312行这里,if (fmt == 3) return FR_DISK_ERR;
回复 支持 反对

使用道具 举报

发表于 2013-12-14 12:26:46 | 显示全部楼层
大哥,请教您一个问题呢,用你们那个SDHC例程进行SD卡测试怎么不行呢,硬件我也连对了啊,分别是D2、D3、CMD、VDD、CLK、VSS、D0、D1接单片机的E5、E4、E3、VCC、E2、GND、E1、E0,对应于Micro SD卡的1、2、3、4、5、6、7、8脚,程序没改动,就用的第九章的SDHC例程,就老是提示“没插入SD卡??”
回复 支持 反对

使用道具 举报

发表于 2013-12-14 13:14:40 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-14 12:26
大哥,请教您一个问题呢,用你们那个SDHC例程进行SD卡测试怎么不行呢,硬件我也连对了啊,分别是D2、D3、CM ...

我 的 可以的哦,sd 卡 格式了没?
试下 换 个sd 卡 看看 效果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-14 13:21:37 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-14 12:26
大哥,请教您一个问题呢,用你们那个SDHC例程进行SD卡测试怎么不行呢,硬件我也连对了啊,分别是D2、D3、CM ...

换个 sd 卡 座,有可能是 sd卡座接触不良。

sd 卡 格式化为 fat16 或者 fat32 格式

检测一下 管脚 是否有短路 或者 虚焊。

我们 自己的 板子,试过 几种 sd 卡,都可以的。 1G 的卡是 可以的。
回复 支持 反对

使用道具 举报

发表于 2013-12-14 13:21:47 | 显示全部楼层
    if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK) /* Load boot record */
        return 3;
这里返回了3是什么意思?导致了上面我说的那步返回error
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-14 13:24:33 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-14 13:21
if (disk_read(fs->drv, fs->win, sect, 1) != RES_OK) /* Load boot record */
        return 3;
这 ...

读 扇区 失败 , 扇区是 引导记录 的扇区。

如果读这个扇区失败,那么就认为可能没插入 sd 卡,或者 通信异常
回复 支持 反对

使用道具 举报

发表于 2013-12-14 19:06:17 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-14 13:24
读 扇区 失败 , 扇区是 引导记录 的扇区。

如果读这个扇区失败,那么就认为可能没插入 sd 卡,或者 通 ...

虚焊肯定没有的,我把卡槽拆开自己一个一个接上去都不得行呢,还是未插入SD卡呢,通电的时候我打电源和地连一起了,是不是SD卡的引脚不对哦?miniSD卡的对应编号就是我前一个回复的那样的啥?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 13:20:32 | 显示全部楼层
说不得 发表于 2013-12-14 13:14
我 的 可以的哦,sd 卡 格式了没?
试下 换 个sd 卡 看看 效果

你好,请问您是用山外的开发板试的还是自己做的SD接口模块哦?有原理图吗?求共享一份嘛,谢谢了
回复 支持 反对

使用道具 举报

发表于 2013-12-16 13:34:41 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-14 13:24
读 扇区 失败 , 扇区是 引导记录 的扇区。

如果读这个扇区失败,那么就认为可能没插入 sd 卡,或者 通 ...

你好,能不能给一份你们开发板完整的原理图呢,我那个SD卡的部分老是不对,老师都着急了
回复 支持 反对

使用道具 举报

发表于 2013-12-16 15:26:04 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-16 13:34
你好,能不能给一份你们开发板完整的原理图呢,我那个SD卡的部分老是不对,老师都着急了

楼主帖子,直接搜索 原理图就找到,是完整的 开发板 原理图。

【山外K60】一天攻破k60视频和代码 - 一天攻破K60 - 山外-vcan123论坛 http://www.vcan123.com/forum.php ... page%3D1&page=1

SD卡 的原理图 很简单的啊,尝试换SD卡试试。你的 K60 支不支持 SD 卡的? 用 编译器 这些调试,执行完 f_open 后, 看看 SD卡的 寄存器配置,市场上 有 一些 型号虽然相同,但实际上 裁剪掉 SD 卡的芯片。
回复 支持 反对

使用道具 举报

发表于 2013-12-16 15:30:17 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-16 13:34
你好,能不能给一份你们开发板完整的原理图呢,我那个SD卡的部分老是不对,老师都着急了

你的 芯片 型号 是什么?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 15:51:50 | 显示全部楼层
Admin 发表于 2013-12-16 15:30
你的 芯片 型号 是什么?

MK60DN512ZVLQ104N30D
回复 支持 反对

使用道具 举报

发表于 2013-12-16 18:09:25 | 显示全部楼层
说不得 发表于 2013-12-14 13:14
我 的 可以的哦,sd 卡 格式了没?
试下 换 个sd 卡 看看 效果

你的线是怎么接的呢?有没有接上拉电阻嘛
回复 支持 反对

使用道具 举报

发表于 2013-12-16 18:14:40 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-16 18:09
你的线是怎么接的呢?有没有接上拉电阻嘛

我们 没有 接上拉电阻,而是 采用 单片机 内部上拉。

你那 型号,如果是 标准芯片,应该是 可以正常使用我们 代码的
回复 支持 反对

使用道具 举报

发表于 2013-12-16 19:19:20 | 显示全部楼层
Admin 发表于 2013-12-16 18:14
我们 没有 接上拉电阻,而是 采用 单片机 内部上拉。

你那 型号,如果是 标准芯片,应该是 可以正常使 ...

但是就是不得行呢,总是检测不到SD卡,我都换了4张SD卡了,连线检查也没得问题,我看端口设置也不对,能不能再给我发一个程序和电路图呢,谢谢了,我邮箱:leeqiang2011@163.com
回复 支持 反对

使用道具 举报

发表于 2013-12-16 19:37:35 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-16 19:19
但是就是不得行呢,总是检测不到SD卡,我都换了4张SD卡了,连线检查也没得问题,我看端口设置也不对,能不 ...

原理图 和 代码 都在 网盘 可下载的。

K60参考代码(支持FX和DNZ):http://pan.baidu.com/s/1krDYI
【原理图】http://pan.baidu.com/s/1ckeMY
回复 支持 反对

使用道具 举报

发表于 2013-12-16 19:53:49 | 显示全部楼层
Admin 发表于 2013-12-16 19:37
原理图 和 代码 都在 网盘 可下载的。

K60参考代码(支持FX和DNZ):http://pan.baidu.com/s/1krDYI
...

都是看的这两个,但是就是不行,我郁闷了,这难道跟人品有关系啊,哎,太霉了,马上就要校内赛了,有没有什么解决办法呢,比如该端口这些,可以指点一下吗?
回复 支持 反对

使用道具 举报

发表于 2013-12-16 23:22:22 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-16 19:53
都是看的这两个,但是就是不行,我郁闷了,这难道跟人品有关系啊,哎,太霉了,马上就要校内赛了,有没有 ...

这 情况下,我也 没辙 ,我测试 我这边的 板子,试了 几张手机 TF 卡 都行哦。

检测 一下 你的K60 芯片 有没有 SD 卡 功能吧 (在线调试,看 寄存器 窗口,SDHC 的 寄存器值 正不正常)。
有的 K60 芯片 是 非标准芯片(定制芯片),价格便宜很多,但去掉 sd、can、以太网 功能。
回复 支持 反对

使用道具 举报

发表于 2013-12-17 18:08:13 | 显示全部楼层
Admin 发表于 2013-12-16 23:22
这 情况下,我也 没辙 ,我测试 我这边的 板子,试了 几张手机 TF 卡 都行哦。

检测 一下 你的K60 芯片 ...

哦,好吧,我问问,谢谢了哈,对了,你们有提供SPI模式的SD卡存图像的例程没有哦?
回复 支持 反对

使用道具 举报

发表于 2013-12-17 18:13:05 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-17 18:08
哦,好吧,我问问,谢谢了哈,对了,你们有提供SPI模式的SD卡存图像的例程没有哦?

暂时没有 SPI 的例程哦
回复 支持 反对

使用道具 举报

发表于 2013-12-20 15:43:58 | 显示全部楼层
文件打开成功

文件大小为:35
文件内容为:感谢您选用 山外Kinetis开发板 !^_^
用旧版本的例程就可以了也,SD卡打开存数据成功了,老版本里

/* 初始化管脚复用 */
    PORTE_PCR(0) = 0xFFFF & (PORT_PCR_MUX(4) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_DSE_MASK);    /* ESDHC.D1  */
    PORTE_PCR(1) = 0xFFFF & (PORT_PCR_MUX(4) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_DSE_MASK);    /* ESDHC.D0  */
    PORTE_PCR(2) = 0xFFFF & (PORT_PCR_MUX(4) | PORT_PCR_DSE_MASK);                                          /* ESDHC.CLK */
    PORTE_PCR(3) = 0xFFFF & (PORT_PCR_MUX(4) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_DSE_MASK);    /* ESDHC.CMD */
    PORTE_PCR(4) = 0xFFFF & (PORT_PCR_MUX(4) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_DSE_MASK);    /* ESDHC.D3  */
    PORTE_PCR(5) = 0xFFFF & (PORT_PCR_MUX(4) | PORT_PCR_PS_MASK | PORT_PCR_PE_MASK | PORT_PCR_DSE_MASK);    /* ESDHC.D2  */
分别和 /* 初始化管脚复用 */
    port_init(PTE0, ALT4 | HDS | PULLUP ); /* ESDHC.D1  */
    port_init(PTE1, ALT4 | HDS | PULLUP ); /* ESDHC.D0  */
    port_init(PTE2, ALT4 | HDS          ); /* ESDHC.CLK */
    port_init(PTE3, ALT4 | HDS | PULLUP ); /* ESDHC.CMD */
    port_init(PTE4, ALT4 | HDS | PULLUP ); /* ESDHC.D3  */
    port_init(PTE5, ALT4 | HDS | PULLUP ); /* ESDHC.D2  */
都是一样的嘛,然后我再外部对应上拉了电阻
回复 支持 反对

使用道具 举报

发表于 2013-12-20 15:52:46 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-20 15:43
文件打开成功

文件大小为:35

旧版本 代码 SD 卡 正常?
新版本 代码 不行?
回复 支持 反对

使用道具 举报

发表于 2013-12-20 16:07:32 | 显示全部楼层
Admin 发表于 2013-12-20 15:52
旧版本 代码 SD 卡 正常?
新版本 代码 不行?

嗯,目前我是这样的情况,不知道为什么呢,老版本里IO初始化也进行了上拉的嘛,也要我再外部上拉才行,很奇怪的一个问题
回复 支持 反对

使用道具 举报

发表于 2013-12-20 16:09:09 | 显示全部楼层
请问我要移植这部分代码到新例程中麻烦不呢,需要改动的东西多不多?
回复 支持 反对

使用道具 举报

发表于 2013-12-20 17:14:38 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-20 16:09
请问我要移植这部分代码到新例程中麻烦不呢,需要改动的东西多不多?

也不会很麻烦,把 里面 的函数 替换 一下就好,保持接口 一样 ……

K60 的 芯片 还挺麻烦的,哪怕 相同型号,可能 批次不相同,代码 也有点差异。
我们 用的 是 正式批次,一包300片那种。跟 一包 5 片的 样品小包的,代码也有点不同。
回复 支持 反对

使用道具 举报

发表于 2013-12-21 11:58:35 | 显示全部楼层
Admin 发表于 2013-12-20 17:14
也不会很麻烦,把 里面 的函数 替换 一下就好,保持接口 一样 ……

K60 的 芯片 还挺麻烦的,哪怕 相同 ...

好像我移植了还是不行,然后我把那个旧代码想Debug单步运行一下也编译不了,旧版本好像只能Release下载运行,Debug一编译就出错,文件找不到,我用的是IAR6.3
回复 支持 反对

使用道具 举报

发表于 2013-12-21 12:00:47 | 显示全部楼层
            searched: "D:\BaiduYunDownload\fire\山外K60-03.k60分离综合代码V3.3\k60分离综合代码V3.3\15.SDHC\SDHC 带文件系统操作\build\sd_demo\..\..\build\"
            searched: "D:\BaiduYunDownload\fire\山外K60-03.k60分离综合代码V3.3\k60分离综合代码V3.3\15.SDHC\SDHC 带文件系统操作\build\sd_demo\..\..\src\platforms\"
等等这种问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-21 12:09:46 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-21 11:58
好像我移植了还是不行,然后我把那个旧代码想Debug单步运行一下也编译不了,旧版本好像只能Release下载运 ...

什么文件找不到?详细点说明……
回复 支持 反对

使用道具 举报

发表于 2013-12-21 12:12:20 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-21 12:09
什么文件找不到?详细点说明……

Fatal Error[Pe1696]: cannot open source file "ARMCM4.h" D:\BaiduYunDownload\fire\山外K60-03.k60分离综合代码V3.3\k60分离综合代码V3.3\15.SDHC\SDHC 带文件系统操作\src\LIB\CMSIS\arm_math.h 263


cannot open source file "ARMCM4.h"

Release的时候就没问题,Debug编译的时候就出现这个问题了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-21 12:29:07 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-21 12:12
Fatal Error: cannot open source file "ARMCM4.h" D:\BaiduYunDownload\fire\山外K60-03.k60分离综合代码 ...

工程选项 宏定义 里加这么一个宏定义:ARM_MATH_CM4
回复 支持 反对

使用道具 举报

发表于 2013-12-21 12:55:54 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-21 12:29
工程选项 宏定义 里加这么一个宏定义:ARM_MATH_CM4

怎么加呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-21 13:14:40 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-21 12:55
怎么加呢?

工程选项 ——
C/C++ Compiler —— Preprocess —— Defined symbols 里面加入:

ARM_MATH_CM4
回复 支持 反对

使用道具 举报

发表于 2013-12-21 13:16:03 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-21 12:29
工程选项 宏定义 里加这么一个宏定义:ARM_MATH_CM4

怎么添加呢,指导一下,谢谢了
回复 支持 反对

使用道具 举报

发表于 2013-12-23 09:38:35 | 显示全部楼层
请问旧版本的SDHC例程和今年的新版本的SDHC例程有什么区别哟?谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-23 11:12:30 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-23 09:38
请问旧版本的SDHC例程和今年的新版本的SDHC例程有什么区别哟?谢谢

改动的内容 挺多的,例如 修复了 多块读写扇区 的bug,调整了 SD 波特率 计算代码。端口 用的是 port 提供的接口,而不是 之前直接调用 port 的寄存器
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-23 11:12:32 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-23 09:38
请问旧版本的SDHC例程和今年的新版本的SDHC例程有什么区别哟?谢谢

改动的内容 挺多的,例如 修复了 多块读写扇区 的bug,调整了 SD 波特率 计算代码。端口 用的是 port 提供的接口,而不是 之前直接调用 port 的寄存器
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-23 11:12:38 | 显示全部楼层
LSQ_GSQ 发表于 2013-12-23 09:38
请问旧版本的SDHC例程和今年的新版本的SDHC例程有什么区别哟?谢谢

改动的内容 挺多的,例如 修复了 多块读写扇区 的bug,调整了 SD 波特率 计算代码。端口 用的是 port 提供的接口,而不是 之前直接调用 port 的寄存器
回复 支持 反对

使用道具 举报

发表于 2013-12-23 12:55:43 | 显示全部楼层
山外メ雲ジ 发表于 2013-12-23 11:12
改动的内容 挺多的,例如 修复了 多块读写扇区 的bug,调整了 SD 波特率 计算代码。端口 用的是 port 提供 ...

哦,好的,非常感谢,我出现这种情况是什么情况呢,我用SDHC例程测试SD卡不行,但是我直接用本帖子中的代码存图像就可以,不过我用鹰眼采集再存好像就把磁道损坏了,可能是我采集和SD卡存图像的时序没处理好吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

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