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

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