芯片用的是F103VE,MDK环境编写。基本用的都是库函数,ADC双模式采样以后,直接TFT显示已可行,现在想把采样的数据存起来,然后写入SD卡。先说说我现在的方法如下:
float ADC1_ConvertedValueLocal; 这个是AD采样值已经转换成电压值了,每次都由DMA传过来。
float ADC1_savedate1[512];我开一个512的浮点型数组,每次TFT显示的时候顺便存进数组里,当n(计数值到了512),开始调用FATFS文件系统的写函数。
int Writetxt_to_sd (void)
{
f_mount(0, &myfs[0]);
myres = f_open( &myfsrc , "0:/date1.txt", FA_CREATE_NEW | FA_WRITE);
if ( myres == FR_OK )
{
myres = f_write(&myfsrc, ADC1_savedate1,sizeof(ADC1_savedate1), &mybr);
f_close(&myfsrc);
return 0;
}
else if ( myres == FR_EXIST )
{
return FR_EXIST;
}
else
{
return -1;
}
}
问题就在这个 f_write函数例程中,都是char或者BYTE(unsigned char)类型,我现在换成浮点数组SD最终读出的乱码,然后长度也不对。
有熟悉FATFS文件系统的大大指点下么 ,怎么写浮点类型数据到SD卡 ,能保存成TXT或者CSV格式就行。
因为要转成TXT文件,我估摸还是要转下格式,那怎么把比较好的方法把浮点数据存到字符数组里。谢谢 急 |