stm32f446关于SD卡读写问题以及FATFS问题
问题1:cubemx中SDIO选择4 bit wide bus模式,时钟频率45Mhz。生成相关工程文件。 代码如图,只是跑hal库封装好的两个基本函数,出现的问题是在调试的时候接受数据数组sdbuf.arr 中接受到了16个数据。。学生对于sd读写不是特别清楚,想请教下这个是什么原因,把写数据改成8个,接受数组有12个数据。
FATFS问题会另外发帖
补充:当sd卡完成读写以后,将sd卡通过sd的u盘插入电脑,会要求你格式化。 SD卡应该是在写的时候给写错数据导致需要格式化。读写这个都是有标准的命令,楼主看一下例程中SD卡的初始化过程。 安 发表于 2018-3-13 16:38
SD卡应该是在写的时候给写错数据导致需要格式化。读写这个都是有标准的命令,楼主看一下例程中SD卡的初始化 ...
hal库应该都已经帮你初始化完成了,看了例程也只是直接调用封装好的HAL_SD_Read,Write等这些函数 HAL库初始化完成,但是对于SD卡的操作还是需要的。楼主可以把你的工程传上来,我们看一下缺少哪些文件。 安 发表于 2018-3-13 17:02
HAL库初始化完成,但是对于SD卡的操作还是需要的。楼主可以把你的工程传上来,我们看一下缺少哪些文件。 ...
就是cubemx选择SDIO 生成就好了,直接用封装好函数,我看例程也是这样,你需要我压缩下给你,麻烦你了!
工程文件太大了,这个是cubemx,主程序我贴图
谢谢分享 看代码你这样的操作是属于SD卡直接读写。使用文件系统是要初始化SD卡的。下图是我找的HAL初始化SD卡的过程。注意看SD_GoIdleState这个函数。
直接操作SD卡扇区,可能会导致SD卡文件系统的破坏。
https://www.stmcu.org.cn/module/forum/thread-607767-1-1.html
可参考:STM32Cube学习之十四:SDIO FATFS.pdf
页:
[1]
2