F_mount函数不能与STM32F401ReTx

时间:2018-06-06 09:06:17

标签: c stm32 sd-card stm32f4

我已经为STM32F407VGTx编写了一些简单的代码(在STM32CubeMx的帮助下),以便在SDcard中创建一个文件。虽然它与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 */

}

1 个答案:

答案 0 :(得分:0)

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