stm32移植fatfs,建立文件成功为什么在电脑上看不到
答案:2 悬赏:0 手机版
解决时间 2021-01-28 10:46
- 提问者网友:夢醒日落
- 2021-01-28 04:34
stm32移植fatfs,建立文件成功为什么在电脑上看不到
最佳答案
- 五星知识达人网友:woshuo
- 2021-01-28 05:45
有可能只是写入扇区,在文件系统级别看不到,用winhex打开看看
全部回答
- 1楼网友:洒脱疯子
- 2021-01-28 06:22
给stm32移植fatfs文件系统,今天终于取得阶段性胜利。只需要提供这样几个函数即可
dstatus disk_initialize (byte);
dstatus disk_status (byte);
dresult disk_read (byte, byte*, dword, byte);
dresult disk_write (byte, const byte*, dword, byte); // 如果实现只读的文件系统就不需要了。
dresult disk_ioctl (byte, byte, void*);
移植成功后,可以用如下方式读取sd卡了,实在太方便了,和pc机上编程差不了多少。
unsigned int i;
byte buffer[512]; // file copy buffer
fatfs fs; // work area (file system object) for logical drive
fil fsrc; // file objects
fresult res; // fatfs function common result code
uint br; // file r/w count
usart1_puts("now, i'll read file 'i2c/uart.lst'.\n");
// register a work area for logical drive 0
f_mount(0, &fs);
// open source file
res = f_open(&fsrc, "i2c/uart.lst", fa_open_existing | fa_read);
if (res)
{
usart1_puts("can't open i2c/uart.lst for read. :-(\n");
goto exit;
}
for (;;) {
res = f_read(&fsrc, buffer, sizeof(buffer), &br);
if (res || br == 0) break; // error or eof
for( i = 0; i < br; ++i )
usart1_putc(buffer[i]);
}
f_close(&fsrc);
exit:
// unregister a work area before discard it
f_mount(0, null);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯