c - F_mount 函数不适用于 STM32F401ReTx

标签 c stm32 sd-card stm32f4

我为STM32F407VGTx编写了一些简单的代码(在STM32CubeMx的帮助下)在SD卡中创建文件。虽然它与 407 完美配合,但无法与 STM32F401ReTx 配合使用。需要明确的是,我已经使用 CubeMx 专门为 401 生成了代码(没有使用 407 的代码)。

即使对于 407,我也只能使用 CubeMx 版本 21 和固件版本 16。我添加了下面的代码。有什么想法吗?

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_SDIO_SD_Init();
  MX_FATFS_Init();

  /* USER CODE BEGIN 2 */
  if(f_mount(&myFatFS,SD_Path,1)==FR_OK)
  {
      HAL_Delay(1000);
      f_open(&myFil,"new document.txt\0",FA_CREATE_ALWAYS | FA_WRITE);
      f_close(&myFil);
  }

  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */

}

最佳答案

问题可能是堆大小 f407 的初始堆大小比 f401 更大。尝试增加链接器文件中的堆大小。

关于c - F_mount 函数不适用于 STM32F401ReTx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50716394/

相关文章:

c - C中不同定义的同名结构

当字符串参数不是以 null 结尾时, `snprintf()` 是否可以越界读取?

rust - 将 Rust 箱用于 STM32 微 Controller 板

c++ - 写入SD卡arduino

sd-card - SPI模式下SD卡写入速度

将 if 语句与 do while 结合起来

c - 带按钮的内部上拉电阻如何设置?

c - Truestudio atollic(基于 eclipse 的 IDE)创建空的二进制文件,尽管没有空的 elf 文件和大量代码

c - STM32L4 - SPI2 时钟问题

android - 如何将数据写入文件并从应用程序外部访问它(没有 SD 卡)?