1

我正在使用 EFSL 将 SD 卡连接到 ATmega128。卡已初始化,但我在串行端口输出上收到一条错误消息“未知错误 0xff(请参阅sandisk 文档 p5-13)”。

这还不是全部,我使用'sprintf'来形成我在串口上显示的字符串。令人费解的是,我还在输出中得到了像“%02d”这样的实际格式字符!我认为我的应用程序本身正在崩溃。我可以给我的源代码,但是它太大了。如果有人想看,我复制粘贴到这里。

我还检查了sandisk docs p5-13,但我无法弄清楚...

我需要这方面的帮助...请让我知道是否有人知道有关此 Thanxs 的任何信息...

4

2 回答 2

1

我不知道如何,但是当我使用不同的卡时问题就解决了。我尝试了两张 FAT32 格式的 1/2 GB 卡;两者都没有工作,但工作的卡是 16 MB 的 FAT12 格式的佳能卡。我正在努力解决这个问题。如果我找到答案我会发布,无论如何,谢谢各位...

于 2009-07-21T09:37:24.547 回答
1

我碰巧为 ATmega8 编写了一些代码,并编写了我自己的 printf 函数,该函数在此处输出到串行端口。

SerWrite 函数是将一个以 0 结尾的无符号字符数组传输到串行端口的函数。

#define SIZE_STATUS 80

void ser_printf(const char *fmt, ...) {
    va_list args;
    uchar STATUS[SIZE_STATUS];
    va_start(args, fmt);
    uchar s = (uchar) vsnprintf(STATUS, SIZE_STATUS, fmt, args);
    va_end(args);
    SerWrite(STATUS, s); 
}
于 2009-07-20T13:47:35.123 回答