【问题标题】:Netduino + Ethernet Shield: How to write to SD card?Netduino + Ethernet Shield:如何写入 SD 卡?
【发布时间】:2011-10-19 15:49:45
【问题描述】:

我已经尝试了几个示例程序来将数据写入安装在Ethernet shield 上的 SD 卡,但都没有成功。 SD 卡大小为 4 GB,格式为FAT32

以太网屏蔽如下:

(在亚马逊上购买 - Arduino Ethernet Shield

这是在创建 Netduino 应用程序(不是 Netduino Plus 应用程序)时不起作用的示例代码(第一行引发异常):

public static void Main()
{
    StorageDevice.MountSD("SD1", SPI_Devices.SPI1, Pins.GPIO_PIN_D10);

    string[] directories = System.IO.Directory.GetDirectories(@"\");
    Debug.Print("directory count: " + directories.Length.ToString());

    for (int i = 0; i < directories.Length; i++)
    {
        Debug.Print("directory: " + directories[i]);
    }

    string[] files = System.IO.Directory.GetFiles(@"\SD1");
    Debug.Print("file count: " + files.Length.ToString());

    for (int i = 0; i < files.Length; i++)
    {
        Debug.Print("filename: " + files[i]);
        FileStream fs = new FileStream(files[i], FileMode.Open, FileAccess.Read, FileShare.None, 512);
        StreamReader sr = new StreamReader(fs);
        Debug.Print("contents: " + sr.ReadToEnd());
    }
}

有示例工作程序吗?

解决方案:

感谢 Chris 和 James,我设法写入 SD 卡并从中读取。将所有内容放在一起后,I wrote an article,以防其他人面临同样的问题。

【问题讨论】:

  • 您能否说明您正在使用的以太网盾型号。我相信长期以来有一个版本有 SD 卡插槽,但实际上并不支持它。那么你是在什么公司买的,大约是什么时候买的?
  • 这是最新的,也没有我所指的问题。对不起,我没有任何经验,无法提供太多帮助。如果您想分享您正在使用的代码示例,也许我和其他人可以为您提供“第二双眼睛”。

标签: netduino


【解决方案1】:

最新版本的 Arduino 以太网扩展板使用“ICSP”接头(板右侧的 3x2、6 针接头)进行通信。进入 SD 卡的输入/输出数据会通过这些引脚。

为了兼容性,我们在 Netduino 中包含了这些相同的标头;要使用此屏蔽,您需要将适当的接头焊接到您的 Netduino 上。那么你应该很高兴!

顺便说一句,Netduino Plus 集成了 MicroSD 和快速以太网网络……这也可能是一个简单的解决方案。 http://www.netduino.com/netduinoplus/

克里斯(秘密实验室有限责任公司)

【讨论】:

  • 我添加了 ICSP 标头,将固件升级到 v4.1.1.0 Beta1 但应用程序仍然抛出异常:SecretLabs.NETMF.IO 中发生了“System.IO.IOException”类型的未处理异常.dll
  • 现在我添加了一条连接 D4 和 D10 的跳线,它可以工作了。
【解决方案2】:

我在这个论坛页面上找到了一个参考http://forums.netduino.com

“您目前需要在 D10 和 D4 之间放置一根跳线才能获得 SD 卡可以正常工作——尽管对于 production v4.1.1 firwmare(它可以让你指定 SD 卡的 片选线)。”

这让我认为您需要使用 D4 而不是 D10 作为 SD 卡。我在同一页面上发现了一些其他参考资料,其中提到 D10 是以太网的 SS 引脚。他们下载页面上可用的固件目前只有 4.1.0,因此您可能需要跳线。我无法对此进行测试,但论坛链接应该是一个很好的起点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2011-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多