Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Embedded 在串行输出上格式化字符!_Embedded_Avr_Avr Gcc - Fatal编程技术网

Embedded 在串行输出上格式化字符!

Embedded 在串行输出上格式化字符!,embedded,avr,avr-gcc,Embedded,Avr,Avr Gcc,我正在使用EFSL将SD卡连接到ATmega128。 卡被初始化,但我得到一个错误,说“未知错误0xff(见sandisk文档p5-13)”。。。在串行端口输出 这还不是全部,我使用“sprintf”来形成字符串,并显示在串行端口上。令人费解的是,我还得到了输出上的实际格式字符,如“%02d”!我认为我的应用程序本身正在崩溃。我可以给出我的源代码,但它太大了。如果有人想看,我会复制粘贴在这里 我也检查了sandisk文档p5-13,但我想不出来 在这件事上我需要帮助伙计们。。。 如果有人知道这件

我正在使用EFSL将SD卡连接到ATmega128。 卡被初始化,但我得到一个错误,说“未知错误0xff(见sandisk文档p5-13)”。。。在串行端口输出

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

我也检查了sandisk文档p5-13,但我想不出来

在这件事上我需要帮助伙计们。。。 如果有人知道这件事,请告诉我
Thanxs…

我碰巧为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); 
}

我不知道怎么办,但当我使用另一张卡时,问题就解决了。我试过两张FAT32格式的1/2GB卡;这两张卡都不起作用,但起作用的卡是16 MB的佳能卡,FAT12格式。我正在努力解决这个问题。如果我找到答案,我会把它贴出来,
谢谢大家…

我想你们应该把这个问题分成两个问题。一个用于sprintf,一个用于SD卡问题。在这两个版本中,请发布相关的代码片段和相关文档的链接(电路板示意图、“sandisk文档”等)。我本来打算把代码放在这里,但它太大了。生成的.hex文件略高于28kB。但是,关于“sprintf”,你是对的,我认真地认为这是“sprintf”的一个问题。。。你知道为什么斯普林特会这么做吗?还有其他人有这个问题吗???