我正在使用带有 freeRTOS、fatFS 和 DMA 的
STM32H7A3ZI MCU
我已将 SDMMC2 外设设置为 4 位模式和 DMA(默认情况下在 STM32H7 MX 配置中)。我已经实现了这个例子中的代码来测试我的 SD 卡(microSDHC 32Gb,也在 2Gb SD 上测试)。
我在 RTOS 任务(1024 堆栈大小)中设置示例代码(CubeMX 检测到我使用 RTOS,因此 sd_diskio 文件设置为带有队列的 rtos,但是我没有在示例代码中实现队列)
我的问题是,在 HAL_SD_InitCard 部分,我在这一行遇到了 HardFault_Handler 错误:
>>> HAL_Delay(1U + (74U * 1000U / (sdmmc_clk)));
(在 stm32h7xx_hal_sd.c 中)
在硬件部分,我在数据和 CMD 引脚上有 47k 上拉电阻,电压供应正常。我也尝试不使用 47k 上拉和内部上拉。我已将 SD 时钟设置为 12.5Mhz。
关于什么可能导致此问题的任何想法?