如何用f_write往SD卡里一次写2byte的数据

2019-10-16 07:25发布

程序里要把采集的温度数据写到SD卡里,温度数据已经放在temperature变量;
  u16 temperature;

  res=f_open (&fil,"0:/test.txt", FA_CREATE_ALWAYS|FA_WRITE);

  f_write (&fil,&temperature, sizeof(temperature)-1, &bww);
  
  f_close(&fil);
但是写到sd里的数据有问题,不是temperature变量里的内容,

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
GS1101923161
2019-10-17 10:41
kk12138 发表于 2016-9-5 17:43
多谢指点,现在已经可以读到正确的数据了,但是那个温度值每次只写一次,我是想把那个f_write放到一个循 ...

那就一直写啊,反正你每个数据的长度都是固定的,读取的时候可以都读出来,然后每2个字节算一个数据,就行了。还有个方法,就是可以将16进制数据转换成字符串的形式写入txt中,然后每个数据直接以一个特殊的字符做间隔符,比如空格或逗号啥的,这样可以防止在16进制的情况下因数据写入错误而导致数据位移,提高数据存储的正确率,当然,如果你想直接在16进制数的后面加个分隔符,我建议不要这么做,因为你很难保证这个数据和间隔符不会一样。

一周热门 更多>