我似乎在行
上有语法错误writer = csv.writer(outputFile, delimiter = 't')
添加sprintf()行后,在以下代码中。代码工作直到我添加了char文本,textresult和sprintf()。我似乎无法找出它的错误。我正在使用C18编译器。代码用于使用SPI将数据写入SD卡。 char txt []是带温度传感器的测量值,例如:23,5。但我想为此添加更多文字。目标是每隔5分钟在SD卡上存储一个测量值,以及时间戳等。我使用的是PIC18f27j53。
FSFILE *file;
答案 0 :(得分:0)
在声明变量的位置后移动sprintf(...)
。
答案 1 :(得分:0)
我不知道ftc
做了什么,但txt
可能不是'\0'
- 终止,如果
你想把它用作一个字符串,它必须是'\0'
- 终止。
此外,您的textresult
是一个空数组,如果您愿意,您会发生什么?
尝试在没有可用空间的地方写东西?
unsigned char textresult[20];
是正确的。
另请注意,%c
中的printf
需要一个char
值,您正在通过
指向整个char
s序列的指针,这是未定义的行为。你必须
使用%s
(对于此txt
必须'\0'
- 已终止)或您通过
txt[0]
,一个char
:
sprintf(textresult, "%c%c", txt[0], text);
// or
unsigned char txt[]={ftc(result,0),ftc(result,1),0x2C,ftc(result,3), 0};
...
sprintf(textresult, "%s%c", txt, text);
如果编译器希望所有变量都在声明的开头声明 功能,移动
FSFILE *file;
在sprintf
来电之前。