上一篇我们已经在QSPI FLASH上支持了fatfs文件系统:这次我们继续在该代码上支持SD卡文件系统,ST官方在维护CubeMX上对多个硬件驱动的fatfs兼容性做得非常好,所以还是用STM32CubeMX来配置就可以了:
小熊派上硬件SD卡接口:
1、SD卡配置
STM32Cube-19 | 使用SDMMC接口读写SD卡数据
2、SD卡fatfs配置
STM32Cube-20(补充) | 在SD卡上移植FATFS文件系统
由于上一节我们已经配置了fatfs的参数,再加上STM32CubeMX已经对SD卡做了支持,所以我们将这个选项勾上就可以了,其余默认即可,然后直接生成代码工程。
3、编写同时测试QSPI FLASH以及SD卡fatfs的程序
很幸运的是,官方已经帮我们把代码都写好了,不需要写一行,直接进入应用编程即可。
由于代码过长,这里不便全部展示,感兴趣的去我的码云上clone工程下载测试。
代码语言:javascript复制/**
* @brief The application entry point.
* @retval int
*/
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_I2C1_Init();
MX_USART1_UART_Init();
MX_QUADSPI_Init();
MX_FATFS_Init();
MX_SDMMC1_SD_Init();
/* USER CODE BEGIN 2 */
Mount_SD_Fatfs();
Mount_QSPI_FLASH_Fatfs();
test_get_qspi_cap();
test_get_sd_card_cap();
test_sd_card_fatfs();
test_spi_flash_fatfs();
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
运行结果:
获取完整demo:
码云仓库:https://gitee.com/morixinguan/bear-pi/tree/master/20.QSPI_SD_Card_Sync_Mount_Fatfs
获取方法:
代码语言:javascript复制git clone https://gitee.com/morixinguan/bear-pi.git
即可获取本次实验工程全部代码。