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

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