前言:
ST的CubeMX库确实强大,但是同时也挖了不少的坑。
使用HAL库SDIO驱动TF卡,按照旧版本的套路开发就不行。如何区分新版和旧版呢?一般来说,基本上HAL固件包发布日期在2017年6月之后的HAL固件对SDIO驱动进行了更新。打开“stm32l4xx_hal_sd.c”文件(其他系列就打开类似文件,例如F4系列就是“stm32f4xx_hal_sd.c”),搜索“HAL_SD_CheckReadOperation”,如果找不到这个函数,那就是新版HAL驱动。
- 硬件环境:
MCU:STM32L476RGT6
Micro SD卡:金士顿4G,已格式化为FAT32格式。
TTL串口转USB模块
- 软件环境:
HAL库版本:1.13 STM32Cube_FW_L4_V1.13.0
- 开发环境:
WIN10 x64, Keil uVision 5.25, STM32CubeMX
STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(一)
STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(二)
STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(三)
STM32L4新版HAL库SDIO(DMA)、FatFs使用教程(四)
- 参考资料网址(均为旧版HAL固件SDIO驱动开发资料):
http://www.waveshare.net/study/article-656-1.html
http://www.waveshare.net/study/article-657-1.html
https://blog.csdn.net/waitxhurt/article/details/82110355
https://blog.csdn.net/zxh912516636/article/details/77679103
https://blog.csdn.net/arikadogenya/article/details/80403511
本文以STM32L476RGT6为例,分四部分,先驱动SDIO接口的SD卡,再实现DMA驱动,然后添加FATFS文件系统,最后加入FreeRtos支持。本教程适用于新版的HAL驱动。
本文中移植好的工程和文档提供下载参考,已测试,芯片型号分别为STM32L476RGT6和STM32F103C8T6。
链接: https://pan.baidu.com/s/1vWP7p1wdo4FHL0uohbDNrg 提取码: zyki