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

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扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版