看网上分享出来的很多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);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
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);
}
---------------------------------
实际测试下
谢谢师兄
一周热门 更多>