问题标签 [fatfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4219 浏览

c++ - 在 C++ 中将 uint8_t* 转换为 uint32_t*

我正在尝试实现 FATFS 库的接口函数。该实现需要一个 uint8_t* 到必须由不同库写入内部 SD 卡的数据。应使用函数 BSP_SD_WriteBlocks(uint32_t*, uint64_t, uint32_t, uint32_t) 将数据写入库。(见下文)

如您所见,我正在尝试将 8 位内存地址转换为 32 位内存地址,但不认为这是正确的方法。

不幸的是,我无法更改函数参数,因此 disk_write 函数必须接受 uint8_t*,而 BSP_SD_WriteBlocks 仅接受 uint32_t*。

什么是最好的 - 和禁食的方法 - 这样做?

0 投票
2 回答
28895 浏览

stm32 - STM32 和 SD 卡(FATFS 和 SPI)

我开始使用 stm32l0 板,在我使用一些更有趣的功能之前它很好。我从未从 Windows 中读取 SD 卡,我找到了 Pins 链接并开始阅读有关 SPI 的信息,这可能是我们项目的合适解决方案(我认为)。

但问题在于编程部分,我发现的每个教程都跳过了基础知识。我使用 STM32CubeMX 生成带有 HAL 和 FATFS 的代码,但我不知道如何初始化然后使用我的 SD 卡。我尝试粘贴我找到的代码,但那时我无法调试它,而且仅仅粘贴某人的代码是没有意义的。

感谢和抱歉我的语法,

编辑:我在这篇文章之后来到这里:链接 我现在正在尝试使用 stm32l0 控制器访问 SD 卡。有人建议我使用 FATFS 来读取设备,但我的理解是该库需要一种访问数据的方法:SPI。我在 STM32CubeMX 中选择了 FATFS 和 SPI2,并在 Eclipse 中导入了项目(我使用的是 HAL 和 SW4STM32)。在引脚描述中,我在 CubeMX 中看到了 MISO、CK、MOSI,它们位于引脚 PB12、PB13、PB14 上。但在主文件中,这些引脚从未使用过。
在我提到的帖子中,另一件事让我感到害怕:SD 卡需要以一种从未听说过的方式进行初始化。
我不知道你是否需要 SPI_Init 和 GPIO_Init 函数,如果你需要我会编辑这个消息。
无论如何我早上都会编辑,因为帖子一定很混乱,我的大脑在燃烧,对不起。询问您是否需要任何精确度。谢谢 !

0 投票
1 回答
88 浏览

pic - 使用 FatFs 写入 SD 卡时 CS 不高

我很难使用使用 FatFs 的 SD 卡来设置我的 PIC 项目。我在 Proteus 中模拟它——但在整个写入过程中,SD 卡的 CS 线上没有高电平。其他的作品。我已经检查了引脚配置,spi 工作正常,并且我使用了示例代码来编写 Web 示例中的例程。有时我会收到错误 CMD63 unsupported。有没有人知道,为什么CS不高?

0 投票
1 回答
1896 浏览

microcontroller - 在 uSD 中使用 FatFS 附加数据

我正在使用 ASF 中包含的 SAMG55 和 FatFS 库,一切似乎都正常工作,但是当我尝试定期将数据附加到文件时,它只能在第一次工作。我的意思是,如果我的文件大小为 100,则微控制器第一次打开文件时说大小为 100,但随后我写了一行并关闭文件。下次我在不重新启动微控制器的情况下打开它时,它说大小始终为 4,行长于 4 个字节。

这是我正在使用的代码:

您对正在发生的事情有任何想法吗?

谢谢

0 投票
1 回答
265 浏览

c - 将本地指针传递给函数 FatFs

我在 C 中有以下功能:

但是我需要一个临时变量来保留旧值然后返回&(fno->fname)。我创建了局部变量FILINFO t_fno,然后将其传递给函数,res = f_readdir(dir, &t_fno);一切正常。

但是,如果我想使用 t_fno 作为本地指针,然后将其传递给 f_readdir,我不会得到实际数据,而是会在if (t_fno->fname[0] == '\0')}. 我也尝试过初始化FILINFO* t_fno = NULL,但这没有帮助。

0 投票
2 回答
938 浏览

freertos - 读写时 FatFS 数据损坏

我们在包含 Cortex-M4 的板上使用Chan 的 FatFS和 FreeRTOS 和 lwIP。该板能够通过 TCP 套接字发送和接收文件,并使用 FatFS 将它们存储在 SD 卡上。

我正在尝试测试该功能,但似乎无法正常运行。当我发送和接收相同的文件时,每次内容都以类似的方式损坏。损坏的最明显特征是它在文件的开头附加了两个零字节。这种情况一直在发生,而其余的损坏可能会有所不同(不显着)。

我知道没有足够的信息来解决问题,但我被困住并寻找一些解决问题的建议。Chan 的代码非常神秘,我找不到通过它的方法。

0 投票
0 回答
191 浏览

c - 使用 FatFs 模块初始化 spi 时出错

所以我想为我的 PIC18F46J50 microctontroller 实现 FatFs 模块,但我在构建我的项目时遇到错误,我无法提前。我对低级磁盘 Io 模块进行了必要的更改,但我似乎仍然无法使其正常工作。所以这里是初始化我的 SPI 模块的代码:

spi.c

spi.h

我得到的错误是 spi.c:59:错误:(1098)变量“_SPI2_Exchange8bit”的声明冲突(diskio.c:78)(908)退出状态 = 1

据我所知,此错误来自缺少原型函数或缺少头文件的包含。但这里都不是这样。希望 some1 可以帮助解决这个问题。谢谢

0 投票
1 回答
115 浏览

c++ - FatFs - FIL 结构导致内存损坏 - STM32F7

STM32F7、GCC、FatFS

以下代码破坏了 retVal。(例如,向量是用一个对象创建的,但是当你检查它时,它的数量是荒谬的)

如果您注释掉“FIL 文件”,那么向量就可以了。但是,一旦您重新使用 FIL 结构,它就会破坏向量。

下一个奇怪的事情是,如果我要创建另一个向量,然后返回使用它作为函数返回对象。原始向量变得很好,但是新返回的向量被破坏了。

我对 c++ 很陌生,所以我需要一些关于如何诊断这个问题的指导。

提前致谢。

0 投票
1 回答
5463 浏览

sd-card - 在 STM32 上无法使用 FatFS 挂载 SD

我正在尝试使用 STM32F405 芯片写入 MicroSD 卡。
引脚连接正确,并且可以使用 HAL_GPIO_WritePin 写入 MicroSD 卡插槽上的每个引脚。(用示波器测量)我正在使用 CubeMX 为 TrueStudio 生成初始化代码,所以希望那里一切正常。但是当我运行以下代码时, f_mount 返回FR_DISK_ERR. MicroSD 卡可以写入和读取。如果我使用不同的设备编号,即“1:”,我会得到FR_INVALID_DRIVE

FR_DISK_ERR所以我的问题是:除了 MicroSD 卡故障之外,还有什么可能导致的?

到目前为止,这是我的代码:

inMX_FATFS_Init() FATFS_LinkDriver(&SD_Driver, SD_Path)被调用并返回 0。

0 投票
2 回答
1145 浏览

c - 使用 FatFs 会导致 PIC18F46J50 uC 上的 f_write 出现无限循环

我试图FatFs为一个项目实施模块几天了。我的低级 I/O 配置已正确实现,因为我可以使用示波器查看信号。但我似乎无法在SD-Card. 我得到的只是我SD-Card正确创建的空文件。读取文件也可以正常工作。当我使用 MPLAB X 进行调试时,我发现该f_write函数永远不会离开for循环。

这是我的 main.c 代码:

这是我的 diskio.c 代码:

这是f_write()来自的功能ff.c