我尝试过几个示例程序来将数据写入安装在以太网屏蔽上的SD卡,但没有一个能工作。SD卡大小为4GB,格式为FAT32。
以太网屏蔽如下:
(在亚马逊-Arduino以太网屏蔽上购买)

这是在创建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());
}
}有工作程序示例吗?
解决方案:
感谢克里斯和詹姆斯,我设法写到SD卡,并从中阅读。把所有的东西组合在一起后,我写了一篇文章,以防其他人面临同样的问题。
发布于 2011-10-21 09:00:17
最新修订的Arduino以太网盾牌使用"ICSP“报头(3x2,6引脚头在板右侧)进行通信。输入/输出数据到您的SD卡是通过这些引脚。
为了兼容性,我们在Netduino上包含了相同的标题;要使用这个屏蔽,您需要将适当的标题焊接到Netduino上。那你就该走了!
顺便说一句,Netduino Plus已经整合了MicroSD和快速以太网networking...which,这也是一个简单的解决方案。http://www.netduino.com/netduinoplus/
秘密实验室有限责任公司
发布于 2011-10-20 16:58:00
我在这个论坛页面http://forums.netduino.com上找到了一个参考资料
“您目前需要在D10和D4之间安装一条跳线,以使SD卡正常工作--尽管在生产版本4.1.1的第一步(这将允许您指定SD卡的芯片选择线)中,这并不是必要的。”
这让我认为,对于SD卡,您需要使用D4而不是D10。我在同一页上发现了其他一些引用,其中提到D10是以太网的SS引脚。他们的下载页面上可用的固件目前只有4.1.0,所以您可能需要跳线器。我不能测试这个,但论坛链接应该是一个很好的起点。
https://stackoverflow.com/questions/7824133
复制相似问题