你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

st-img
chrome
st-img
firefox
st-img
safari
st-img
ie8及以上
shequ.stmicroelectronics.cn
  • ST意法半导体官网
  • STM32中文官网
  • ST全球论坛
登录/注册
  • 首页
  • 技术问答
  • 话题
  • 资源
  • 创客秀
  • 视频
  • 标签
  • 积分商城
  • 每日签到
caojin85cn

caojin85cn

 

回答数 0 关注数 0
关注 私信
  • 动态99
  • 提问
  • 回答0
  • 创客秀 0
  • 分享 0
  • 关注0
8 回答

STM32F767Zi HAL库SDMMC使用DMA方式写入数据异常

STM32F7
Cai1324 Cai1324 回答时间: 前天 11:02

大佬,怎么解决呀? 我也是stm32h7 SD卡DMA方式读写有问题。 轮询方式直接写是正常的。 能贴出cubemx中应该如何配置吗? 这是我测试代码 /** * @brief SD卡测试2 DMA方式读写SD卡 * */ void SD_BasicTest2() { puts("测试2 DMA方式读写SD卡"); uint8_t saveBuffer[512] = {0x00};//保存原本数据,测试完后写回去,防止破坏文件系统 uint32_t blockTest = 0xFF;//测试的块地址 uint8_t writeBuffer[512] = {0x00}; for(int i=0; i<sizeof(writeBuffer); i++) { writeBuffer = i % 256; } uint8_t readBuffer[512] = {0x00}; puts("开始读写测试"); HAL_Delay(100); if(HAL_SD_WriteBlocks_DMA(&hsd1, writeBuffer, blockTest, 1) != HAL_OK) { puts("写入失败"); return; } else { printf("写入成功 前4个数据 %X %X %X %X\n", writeBuffer[0], writeBuffer[1], writeBuffer[2], writeBuffer[3]); } HAL_Delay(100); if(HAL_SD_ReadBlocks_DMA(&hsd1, readBuffer, blockTest, 1) != HAL_OK) { puts("读取失败!"); return; } else { printf("读取成功 前4个数据 %X %X %X %X\n", readBuffer[0], readBuffer[1], readBuffer[2], readBuffer[3]); } HAL_Delay(100); if(memcmp(writeBuffer, readBuffer, sizeof(writeBuffer)) == 0) { puts("读写的数据一样,测试通过"); } else { puts("读写的数据不同,测试失败"); } puts("写回原本数据,防止破坏文件系统"); if(HAL_SD_WriteBlocks_DMA(&hsd1, saveBuffer, blockTest, 1) != HAL_OK) { puts("写入失败"); } HAL_Delay(100); }

赞0
caojin85cn caojin85cn


阅读作者更多的帖子

所在话题

参与活动

  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    网络 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16
  • 滴滴押注社区团购,明确“投入不设上限,要做市场第一”

    线下 2020-10-16