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

不知道为什么,qspi 使用dma模式一次读取数据量大于128KB ...

[复制链接]
hpdell 提问时间:2017-6-4 19:02 /
本帖最后由 hpdell 于 2017-6-5 23:42 编辑

不知道为什么,qspi 使用dma模式,一次读取数据量大于128KB 就出错,

如果把 大于 128KB 的数据量 分包读取,完全没有任何问题;

大于128KB的数据量,跟踪发现是 dma 的接收数据长度赋值为0,不知是为何赋值失败 ??


跟踪发现最终是没有给dam的数据长度赋值 ???

具体如下:

128KB 数据长度赋值跟踪,结果正常,


128KB 的数据量赋值成功
128KB DataLength-2.png




512KB dma的数据长度赋值为 0  ???
512KB DataLength-1.png


512KB DataLength-2.png


512KB 的数据量赋值失败 ???
512KB DataLength-3.png


不知道为何 > 128KB 的数据值怎么就赋值不成功 ???????????

dma的数据长度的数据类型是  __IO uint32_t  ,数据量也没有超过这个数量类型,怎么会不成功 ??

使用的库版本:

  * @file    stm32f7xx_hal.c
  * @author  MCD Application Team
  * @version V1.2.2
  * @date    14-April-2017
  * @brief   HAL module driver.
  *          This is the common part of the HAL initialization


*********************************************************************************************
*********************************************************************************************

从下图的 128KB 与 512KB 的数据看寄存器,发现出 数据量的变化外,其他寄存器的值都是完全一致的,

为神马会出现这样的情况 ?????????????????????????????????????????

128-512-reg-comp.png









128KB DataLength-1.png
收藏 评论3 发布时间:2017-6-4 19:02

举报

3个回答
hpdell 回答时间:2017-6-5 23:43:11

发布的帖子如何删除啊 ???
hpdell 回答时间:2017-6-6 10:30:54
终于找到了问题所在了,原来是 dma的 数据长度寄存器是 16bit,他奶奶的,我看寄存器定义是 32bit,实际使用只使用到了 低 16bit的,所以数据长度大于65536-1 时,就不行了,哎

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2 结贴奖励,恭喜楼主啊

查看全部评分

hpdell 回答时间:2017-6-6 10:31:21
如果需要一次性读取比较大的数据量的话,需要分包读取才行

所属标签

相似问题

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