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

ST的hal库有问题手头有STM32L4或STM32F7的帮忙测试DMA SD卡

[复制链接]
maisheng 提问时间:2017-3-27 15:34 /
阅读主题, 点击返回1楼
收藏 1 评论17 发布时间:2017-3-27 15:34
17个回答
hpdell 回答时间:2017-9-14 20:15:03
xiang90721 发表于 2017-9-13 19:18
哥们能否把你的F7的关于SDMMC的配置及驱动给我参考参考

bsp_sd.rar (8.04 KB, 下载次数: 154)
xiang90721 回答时间:2017-9-15 09:55:02
hpdell 发表于 2017-9-14 20:15
A、优先级
   SDMMC2_IRQn           " bsp_drver_sd.c "             0xe
   DMA2_Stream0_IRQn    ...

非常感谢,按照你的配置方式,SDMMC的DMA方式调通了,但是发现,使用DMA和不使用DMA读写速度没多少变化,我是直接块读写操作,每次多块写入16K字节(512*n),速度也就2.7m/s

你有测试过么
hpdell 回答时间:2017-9-19 20:03:17
xiang90721 发表于 2017-9-15 09:55
非常感谢,按照你的配置方式,SDMMC的DMA方式调通了,但是发现,使用DMA和不使用DMA读写速度没多少变化, ...

你是如何测试的啊 ???
xiang90721 回答时间:2017-9-19 21:31:57
本帖最后由 xiang90721 于 2017-9-19 21:33 编辑
hpdell 发表于 2017-9-19 20:03
你是如何测试的啊 ???

具体测试方法:
tick_start = HAL_GetTick();//获取开始测量前的时钟计数
for(i=0;i<5000;i++)
{
     ret = BSP_SDMMC_Write(buf,i*n,n);//BSP_SDMMC_Write为使用库函数HAL_SD_WriteBlocks_DMA()封装的块写入函数而已
      if(ret != MSD_OK)
      {
          //do something
           while(1);
      }
}
tick_end = HAL_GetTick();
write_speed = buf_len*5000*1000/(tick_end - tick_start);//buf_len为数组buf数据长度,为512*n字节,系统滴答时钟配置的为1ms一次
通过如上的方式计算得出的写入速度测试,读出速度也是同样的方式计算得出。
SD卡为class 4,且供给SD的时钟为24M
nihaoshijie5188 回答时间:2018-2-25 13:45:51
非常感谢,下载学习!
jumpcnzhang 回答时间:2018-8-22 12:44:42
我用的cube生成的代码,dma rx没有问题,但是dma tx时候进不了中段,请问是是要对齐哪里?
jumpcnzhang 回答时间:2018-8-22 12:46:23
加系统的话是用队列进行完成保护的,dma配置收发都是对齐word。
jumpcnzhang 回答时间:2018-8-22 12:46:54
读可以,写不行。
12

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版