第一次:
1、先定义结构体:struct TestRecordT
{
char Comm[20]; //备注
float TestVal;
float TestConc;
float LimitConc;
unsigned char   X; //检测区域左上角坐标(以截取的图片原点为参考点)
unsigned char   Y; //检测区域左上角坐标(以截取的图片原点为参考点)
unsigned char   Width; //检测区域宽度
unsigned char   Height; //检测区域高度
};
2、然后声明了结构体变量:
struct TestRecordT TestRecordT1 = {
"This is a perfect dd",10,10,10,20,20,30,40
};
3、使用函数f_write(&fdst,&TestRecordT1,46,&bw)将结构体中的数据一次性写入SD卡中。
使用WinHex软件打开,结果如下:
注:00 00 20 41是浮点数10的表示,注意红色竖杠处是正确的,"This is a perfect dd"字符串结束后紧接着就是浮点数10,一切正常。
第二次:
1、定义了结构体,相比上一个结构体多了一个字符串TT[10]:
struct TestRecordTT
{
char TT[10];
char Comm[20]; //备注
float TestVal;
float TestConc;
float LimitConc;
unsigned char   X; //检测区域左上角坐标(以截取的图片原点为参考点)
unsigned char   Y; //检测区域左上角坐标(以截取的图片原点为参考点)
unsigned char   Width; //检测区域宽度
unsigned char   Height; //检测区域高度
};
2、然后声明了结构体变量:struct TestRecordTT TestRecordT2 = {
"BBBBBBBBBB","This is a perfect dd",10,10,10,20,20,30,40
};
3、同样使用f_write(&fdst,&TestRecordT2,46,&bw)将结构体数据一次性写入SD卡中。
使用WinHex软件打开,结果如下:
注:开头10个42表示大写字母B,紧接着是字符串"This is a perfect dd",然后这时就多出了两个00才写入浮点数10
请教各位大神帮忙分析一下这两个字节的00是怎么产生的?
|