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

请教下 STM32Cube_FW_F7_V1.6.0 sd dma 的使用 ?

[复制链接]
hpdell 提问时间:2017-3-27 20:01 /
阅读主题, 点击返回1楼
收藏 1 评论18 发布时间:2017-3-27 20:01
18个回答
hpdell 回答时间:2017-3-29 21:25:02
xmshao 发表于 2017-3-29 16:20
你看看这两个下面两个函数:
HAL_SD_ErrorTypedef HAL_SD_CheckWriteOperation(SD_HandleTypeDef *hsd, uin ...

你好,这个最新的固件库 v1.6版本里面已经木有你所说的那两个函数了,

在 v1.6 版本之前是有的,但是在 v1.6 版本里面已经找不到了
gdszyj 回答时间:2017-4-7 09:20:36
这两天也是遇到同样的问题,我在想用DMA的中断是否可以呢?
gdszyj 回答时间:2017-4-7 09:45:03
/**
  * @brief  Reads block(s) from a specified address in a card. The Data transfer
  *         is managed by DMA mode.
  * @note   This API should be followed by a check on the card state through
  *         HAL_SD_GetCardState().
  * @note   You could also check the DMA transfer process through the SD Rx
  *         interrupt event.
  * @param  hsd: Pointer SD handle                 
  * @param  pData: Pointer to the buffer that will contain the received data
  * @param  BlockAdd: Block Address from where data is to be read  
  * @param  NumberOfBlocks: Number of blocks to read.
  * @retval HAL status
  */
HAL_StatusTypeDef HAL_SD_ReadBlocks_DMA(SD_HandleTypeDef *hsd, uint8_t *pData, uint32_t BlockAdd, uint32_t NumberOfBlocks)
这个是在库文件找到的,当用HAL_SD_GetCardState().返回的结果总是4 HAL_SD_CARD_TRANSFER               = 0x00000004U,  /*!< Card is in transfer state               */
hpdell 回答时间:2017-4-7 11:06:30
gdszyj 发表于 2017-4-7 09:45
/**
  * @brief  Reads block(s) from a specified address in a card. The Data transfer
  *         is ...

我目前使用的查询貌似,dma 模式还没有去研究,除非把他替换为 v1.6 之前的版本就可以使用 dma 模式了,
gdszyj 回答时间:2017-4-7 14:38:13
hpdell 发表于 2017-4-7 11:06
我目前使用的查询貌似,dma 模式还没有去研究,除非把他替换为 v1.6 之前的版本就可以使用 dma 模式了, ...

刚才试了下查询的方法,速度能够达到1M每秒,但是拷贝进去以后会出现乱码的现象,再次拷贝出来说是文件损坏。
        /* Write block(s) in DMA transfer mode */
        if(HAL_SD_WriteBlocks(&hsd,buf, blk_addr , blk_len,0xffff) == HAL_OK){
                ret = USBD_OK;
        }
Gery_xia 回答时间:2017-8-31 16:39:51
我这边使用F411的芯片,也发生了同样的现象,850K到1M的速度,但是会乱码,请问这个问题有解决吗?
hpdell 回答时间:2017-8-31 22:21:44
Gery_xia 发表于 2017-8-31 16:39
我这边使用F411的芯片,也发生了同样的现象,850K到1M的速度,但是会乱码,请问这个问题有解决吗? ...

你参考 H7 历程的 sd 卡 dma 代码就可以解决
Gery_xia 回答时间:2017-9-25 19:10:21
hpdell 发表于 2017-8-31 22:21
你参考 H7 历程的 sd 卡 dma 代码就可以解决

H7中的哪个例程?搞了好久还是没能解决,请帮忙指点指点
hpdell 回答时间:2017-9-25 22:38:36
Gery_xia 发表于 2017-9-25 19:10
H7中的哪个例程?搞了好久还是没能解决,请帮忙指点指点

看看这个里面的,我已经上传了,

https://www.stmcu.org.cn/module/ ... p;page=2#pid2285905

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