| 本帖最后由 xiang90721 于 2017-9-11 09:40 编辑 我使用的就是官方STM32746G-Discovery开发板,对SD直接进行块读写操作,发现其对SD读写速率太慢了!读取速度:1.3M/s左右,写入速率:130k/s左右,单位byte字节。 使用DMA的方式效果不见好转! 测试环境: 1、使用的测试工程是在官方固件包STM32Cube_FW_F7_V1.7.0\Projects\STM32746G-Discovery\Applications\FatFs\FatFs_uSD工程中修改而来,驱动都是工程中的,只是去除了文件系统直接调用读写接口函数进行测试,其时钟配置都是没改。 2、使用的SD卡为现市面上常见的2.0 金士顿8G卡 class 4 3、使用的SDMMC接口为4线数据方式(官方板子是这样接的) 测试方式: 我是基于库函数的方式来写的,具体测量方式如下: tick_start = HAL_GetTick();//获取开始测量前的时钟计数 for(i=0;i<5000;i++) { ret = BSP_SDMMC_Write(buf,i;1);//BSP_SDMMC_Write为使用库函数HAL_SD_WriteBlocks()封装的块写入函数而已 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字节,系统滴答时钟配置的为1ms一次 通过如上的方式计算得出的写入速度测试,读出速度也是同样的方式计算得出。 想问这样的速度可肯定不正常吧?哪位有做过,可以给我一个高速SDMMC配置么?期望写入速度能有1M以上! |
微信公众号
手机版
这里有实例,它能超1M每秒。
评分
查看全部评分
评分
查看全部评分