完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
RTT版本4.1.1
SCONS1.2 BSP金点原子战舰3的BSP 板子是jiezhi之前的收音机开发板,硬件用之前的收音机的固件测试过是正常的。 驱动方式SDIO,现在可以正常读取卡的容量,但是不能识别。 做过尝试:通过修改div_sdio下面的SDIO频率,但是没改善。 |
|
相关推荐
2个回答
|
|
|
用studio新建一个项目,用MXcube重新配置晶振和引脚突然就可以了,我估计是频率配置引起的问题
|
|
|
|
|
|
在STM32G103ZE上使用金点原子战舰3的BSP,通过SCONS添加了SD卡功能后,可以读取卡容量但是无法挂载文件系统。以下是一些可能的原因和解决步骤: 1. **检查SD卡初始化**:能够读取卡容量说明SDIO硬件通信基本正常,但挂载文件系统失败可能是文件系统初始化的问题。需要确认在初始化SD卡后,是否成功初始化了文件系统(如elm-fatfs)。 2. **文件系统初始化代码**:在应用程序中,挂载文件系统之前需要先初始化文件系统。例如,对于FATFS,需要调用`dfs_mount`函数。确保在挂载之前已经调用了`elm_init()`(对于elm-fatfs)来初始化文件系统。 3. **挂载路径**:确认挂载路径是否正确,通常为"/"或"/SD"。另外,确保挂载点已经创建(如果挂载点不存在,需要先创建)。 4. **SD卡分区和文件系统格式**:确认SD卡已经格式化为FAT32(或FAT16)文件系统。虽然能够读取容量,但可能卡上的文件系统不被RT-Thread支持。可以尝试重新格式化SD卡为FAT32格式。 5. **堆栈大小**:文件系统操作需要较大的栈空间,检查文件系统线程的栈大小是否足够。建议至少1KB以上,最好2KB。 6. **SDIO时钟配置**:虽然已经尝试修改SDIO频率,但可能还需要调整。过高的时钟频率可能导致通信不稳定。可以尝试降低SDIO时钟频率,例如设置到较低的值(如400kHz)测试是否能够挂载,然后再逐步提高。 7. **日志输出**:启用RT-Thread的调试日志,查看挂载失败的具体错误代码。可以在挂载函数调用后打印返回值,根据错误码定位问题。 8. **驱动适配问题**:检查SD卡驱动(在`drv_sdio.c`)中,是否正确地处理了多块传输、DMA配置等。特别是挂载文件系统时会进行多块读取操作。 9. **DMA配置**:如果使用了DMA,检查DMA缓冲区是否对齐(通常需要4字节对齐),以及DMA传输是否正常。在不稳定时,可以尝试关闭DMA,使用轮询模式测试(修改驱动,将`sdio_dma_enable`设置为0)。 10. **硬件连接**:检查SD卡座与芯片之间的硬件连接,确保没有虚焊,同时注意电源稳定性。使用示波器检查SDIO时钟和数据线在通信时的波形。 11. **RT-Thread版本兼容性**:虽然使用的是4.1.1版本,但有可能与BSP存在兼容性问题。可以尝试更新到最新版本,或者查看是否有针对该问题的补丁。 **具体操作步骤建议:** - 在代码中,挂载SD卡的部分,添加错误处理,打印挂载失败的原因。例如: ```c if (dfs_mount("sd0", "/", "elm", 0, 0) == 0) { rt_kprintf("SD card mounted to /n"); } else { rt_kprintf("SD card mount failed!n"); // 可以进一步获取错误码 } ``` - 在挂载之前,确保SD卡已经初始化成功,并打印SD卡信息(容量等)。 - 尝试在文件系统初始化之前增加一点延时,确保SD卡稳定。 - 检查`drv_sdio.c`中关于SDIO的配置,特别是时钟配置部分。SD卡初始化阶段需要低速,初始化后可以切换到高速。查看初始化过程中是否有设置时钟频率的步骤。 - 在RT-Thread的`msh`中,尝试手动挂载: ``` mkdir /sd mount sd0 /sd ``` 然后观察输出。 由于问题描述中已经测试过收音机固件正常,说明硬件是没问题的,因此问题可能出在软件配置上。请按照上述步骤逐一排查。 如果上述步骤仍无法解决问题,可能需要进一步检查驱动代码,特别是与SD卡状态和错误处理相关的部分,确保在挂载文件系统时没有发生错误。 根据您描述的问题,SD卡可以读取容量但无法挂载文件系统,结合RT-Thread的SDIO驱动特性,以下是系统化的解决方案: 1. 检查文件系统初始化流程
2. SD卡文件系统格式验证
3. 配置SDIO时钟与驱动参数
4. 检查硬件连接与电源
5. 启用驱动调试信息
6. 堆栈大小调整
7. 分区表兼容性处理
8. 最终测试流程
|
|
|
|
|
只有小组成员才能发言,加入小组>>
184个成员聚集在这个小组
加入小组rtstudio是否可像keil加载ini解决虚拟串口与mcu串口通讯?
1211 浏览 0 评论
【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
1775 浏览 1 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
2156 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
1777 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
2004 浏览 0 评论
1461浏览 5评论
在RT-Thread Studio中新建的stm32f407-atk-explorer工程运行qemu失败,是什么原因引起的?
1764浏览 3评论
为什么rt_device_read()只能读取到两个字节数据?
359浏览 3评论
连得上热点,但是ping baidu.com出现timeout,请问跟什么有关?
418浏览 3评论
413浏览 2评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 10:37 , Processed in 0.851835 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4290
