梧州市建设局网站数据来源网站怎么做脚注
news/
2025/10/4 8:49:32/
文章来源:
梧州市建设局网站,数据来源网站怎么做脚注,宁波自己建网站,手机商城 手机网站建设问题描述: 我的团队一直在处理一个包含基于标准库的 SD 卡的项目。最近我们决定迁移到 HAL 并开始了。 幸运的是#xff0c;我们项目的所有部分都尽可能地更改为 HAL#xff0c;它们运行良好#xff0c;但我们不知道为什么 SD 卡不能正常运行。 我们没有更改外设的配置时钟我们项目的所有部分都尽可能地更改为 HAL它们运行良好但我们不知道为什么 SD 卡不能正常运行。 我们没有更改外设的配置时钟但我们必须在 HAL 中将“SDMMC 控制器的时钟频率”更改为 1.5MHz而在 STDLibrary 中为 24MHz。因为它根本不起作用。 此外我们的客户正在使用多种 SD 卡类型所有这些都可以但不是很好。我的意思是FR_DISK_ERR 在工作期间返回了很多但我们的设备试图获取FR_OK。 不幸的是我们总是在某些 SD 卡中收到FR_DISK_ERR而它在我们的 STDLibrary 版本中一直有效。 此外我们发现如果“f_mount”函数被调用一次然后您将 SD 卡取出并重新放入它将永远无法工作直到您重置您的微控制器。
我的微控制器 STM32F427VI 和 SDIO 配置如下 hsd.Instance SDIO;hsd.Init.ClockEdge SDIO_CLOCK_EDGE_RISING;hsd.Init.ClockBypass SDIO_CLOCK_BYPASS_DISABLE;hsd.Init.ClockPowerSave SDIO_CLOCK_POWER_SAVE_DISABLE;hsd.Init.BusWide SDIO_BUS_WIDE_1B;hsd.Init.HardwareFlowControl SDIO_HARDWARE_FLOW_CONTROL_DISABLE;hsd.Init.ClockDiv 14;它适用于 4 位宽的总线。 另外我设备的时钟是 96MHz“APB2 外设时钟”是 48MHz。 已编辑 至于重新插入卡 - 当 f_open 返回 FR_DISK_ERR 时我通过调用 f_mount 再次进行了初始化。我一直这样做直到给FR_OK但在这种情况下它从未返回FR_OK。 我意识到 f_mount 没有像亲爱的 Jacek Ślimok 所说的那样第二次初始化 SDIO。 因为有一个标志不允许再次调用“SD_initialize”SD_initialize 函数包括 BSP_SD_Init。 这是 diskio.c 的代码
DSTATUS disk_initialize (BYTE pdrv /* Physical drive nmuber to identify the drive */
)
{DSTATUS stat RES_OK;if(disk.is_initialized[pdrv] 0){disk.is_initialized[pdrv] 1;stat disk.drv[pdrv]-disk_initialize(disk.lun[pdrv]);}return stat;
}现在我在调用 f_mount 之前使用了 SD_PowerON 和 SD_InitCard现在它可以正常工作了。 这是一个错误不是吗
但其他问题仍然存在。它根本不适用于 24MHz 时钟并且某些 SD 卡仍会返回 FR_DISK_ERR。
已编辑 最后当我将我的 HAL 库更新到 STM32Cube_FW_F4_V1.24.2 时它起作用了。但是 HAL 仍然不如标准外设好用。例如我还不能将“ClockDiv”设置为“0”24MHz。它根本不起作用。现在我将“ClockDiv”设置为“1”16MHz这对我的项目来说还不够好但我必须这样做。或者如果您将 SDCard 拿走并在程序运行时再次插入您将无法使用 f_mount 初始化 FATFS。它根本行不通。您必须自己重新初始化 SDIO Peripheral。不幸的是现在我没有时间详细了解我的日程安排。也许在未来。 【问题讨论】 至于重新插入卡 - 那是因为它需要再次初始化然后f_mount-ed。通过初始化我并不是指 GPIO / DMA 初始化您可能会忽略它并摆脱它而是在插入卡后但在挂载文件系统之前需要再次发送到卡的 SD 命令。特别是 - 请参阅 HAL_SD_InitCard 和内部发送 SD 命令的函数 - 主要是 SD_PowerON 和 SD_InitCard。 【参考方案1】 disk.is_initialized[0] 0; // 强制重新初始化 安装前。这是支持热插拔 sd 卡的简单方法。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/926947.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!