完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好。
我尝试在 NUCLEO-F411RE 板上的 STM32F411RE 上用 fatfs 测试 sdcard。 我没有 100% 确定的硬件或软件,所以如果它是软件或硬件问题,我很难调试。 我已经阅读了一些主题,其中一个是 sd 初始化问题(但在我的版本中这个问题已经解决了)。 我已经三次检查了所有连接,当卡不在插座中时,我得到了快速响应。 我已经从 stm32cubemx 生成了代码,并添加了自定义代码: /* 初始化所有配置的外设 */ MX_GPIO_Init(); MX_SDIO_SD_Init(); MX_FATFS_Init(); /* 用户代码开始 2 */ 结果结果; FATFS SDFatF;/* SD 磁盘逻辑驱动器的文件系统对象 */ 填写我的文件;/* 文件对象 */ res = f_mount(&SDFatFs, (TCHAR const*)SDPath, 0); 如果(res!= FR_OK) 同时(1); res= f_open(&MyFile, ''STM32.TXT'', FA_CREATE_ALWAYS | FA_WRITE); 如果(res!= FR_OK) 同时(1); /* 用户代码结束 2 */f_mount 没问题,但f_open在大约 30 秒后返回一个FR_DISK_ERR。当插座中没有卡时,我会快速返回FR_NOT_READY。 执行 f_open 时,函数卡在 ff.c 的第 3050 行 fmt = check_fs(fs, bsect); /* 加载扇区 0 并检查它是否是 FAT-VBR 作为 SFD */ 它 check_fs 返回 4 个代码,然后 f_open 返回 FR_DISK_ERR 我唯一做的就是将一些 SDIO 引脚更改为其他选项,并设置时钟。我试过使用高达 96 的 SDIO 分频器,但它没有解决我的问题。 我忘记了什么吗?我知道插座在跳线上,但在 250khz 时钟下它应该可以工作......当然尝试了一些卡,尝试使用 f_mkfs 格式化卡...... 我是我正在使用的软件: Attolic True工作室 v9.0 STM32Cube FW_F4 V1.19.0 FatFs R0.12c STM32Cube 4.24 |
|
相关推荐
1个回答
|
|
它不工作的原因是我没有设置 DMA 控制器工作,标准 SDIO 通信通过 DMA 工作。
解决方案适用于: Attolic True工作室 v9.0 STM32Cube FW_F4 V1.0 FatFs R0.12c STM32Cube 4.24 您必须在 STM32Cube 中手动执行: 1. 为 RX 和 TX 添加一个 DMA Stream 2. 为SDIO添加IRQ(不确定是否需要) 3. 可选地在除 sdio_clk 之外的所有线路上启用内部上拉。该卡仅使用内部上拉电阻,在几乎全速下没有任何问题。 在 sd_diskio.c 底部的代码中添加: 这些是 DMA 完成回调的周函数的专有名称。 卡开始工作。我也尝试过使用池模式(在 stm32cube 的 FatFs 配置中禁用 DMA),但这种方式只能从卡中读取,而写入会导致一些我不想调试的致命错误。默认是启用 DMA。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
2578 浏览 1 评论
3194 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
1763 浏览 1 评论
3589 浏览 6 评论
5967 浏览 21 评论
924浏览 4评论
1300浏览 4评论
在Linux上安装Atollic TRUEStudio的步骤有哪些呢?
563浏览 3评论
使用DMA激活某些外设会以导致外设无法工作的方式生成代码是怎么回事
1286浏览 3评论
1338浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-6 03:23 , Processed in 1.267310 second(s), Total 76, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号