如何利用文件系统往U盘的TXT文档中写入AD采样值,而不仅仅是一串固定的字符?

2019-08-14 02:33发布

看网上分享出来的很多U盘,文件系统的历程里面,往文件里面写入数据,写入的都是不变的数据。例如
result = f_write(&file, "FatFS Write Demo www.armfly.com ", 34, &bw);中的"FatFS Write Demo www.armfly.com ";
而我现在需要将AD转换的结果写入文本文档中,试了一下午了,发现写入的是一堆乱码,不知道哪儿出了问题。下面是我的程序,麻烦各位大神帮忙看看:
static void CreateNewFile(void)
{
    FRESULT result;
    FATFS fs;
    FIL file;
    DIR DirInf;
    uint32_t bw;
    extern vu16 After_filter[M]; //用来存放求AD平均值之后的结果。
    u16 writeTextBuff;
    u16 bytesToWrite;
    u8 i;
  /* 挂载文件系统 */
result = f_mount(0, &fs); /* Mount a logical drive */
/* 打开根文件夹 */
result = f_opendir(&DirInf, "/"); /* 如果不带参数,则从当前目录开始 */
if (result != FR_OK)
{
    usb_printf("打开根目录失败 (%d) ", result);
    return;
}

/* 打开文件 */
result = f_open(&file, "test.txt", FA_CREATE_ALWAYS | FA_WRITE);

/* 写一串数据 */
for(i=0;i<M;i++)
{
    writeTextBuff =  After_filter;
    bytesToWrite = sizeof(writeTextBuff);
    result = f_write(&file, (const void *)writeTextBuff, bytesToWrite, &bw);
    if (result == FR_OK)
    {
        usb_printf("test.txt 文件写入成功 ");
    }
    else
    {
        usb_printf("test.txt 文件写入失败 ");
    }
}

// result = f_write(&file, "FatFS Write Demo www.armfly.com ", 34, &bw);
// if (result == FR_OK)
// {
// usb_printf("test.txt 文件写入成功 "); After_filter[M];
// }
// else
// {
// usb_printf("test.txt 文件写入失败 ");
// }

/* 关闭文件*/
f_close(&file);

/* 卸载文件系统 */
f_mount(0, NULL);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
师兄,帮帮忙
2019-08-14 06:17
原子哥,你看我这样可以不:
extern vu16 After_filter[M]; //用来存放求平均值之后的结果
FRESULT result;
char buffer[20];
u16 writeTextBuff;
u16 bytesToWrite;  
/* 写一串数据到该文件 */
for(i=0;i<M;i++)
{
writeTextBuff =  After_filter;
bytesToWrite = sizeof(writeTextBuff);   
sprintf(buffer,"%d",writeTextBuff);
result = f_write(&file,buffer, bytesToWrite, &bw);
}

一周热门 更多>