硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3003|回复: 3
收起左侧

[ADC] H750VB adc使用DMA无数据问题求助

[复制链接]

5

主题

13

回帖

28

积分

新手上路

积分
28
发表于 2020-10-17 12:22:47 | 显示全部楼层 |阅读模式
H750vb使用PB0 PB1分别作为ADC的ADC1_IN9  ADC1_IN5,想使用DMA方式传输数据。但AD值能获取正常,DMA一直没有数据会是什么原因???  程序是硬汉H7例程改的


Snipaste_2020-10-17_12-23-18.jpg
Snipaste_2020-10-17_12-20-29.jpg
Snipaste_2020-10-17_12-19-33.jpg
Snipaste_2020-10-17_12-19-17.jpg
回复

使用道具 举报

5

主题

13

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-10-17 13:30:42 | 显示全部楼层
@eric2013  麻烦帮忙看看
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107070
QQ
发表于 2020-10-18 09:23:35 | 显示全部楼层
Cache问题注意了没
回复

使用道具 举报

5

主题

13

回帖

28

积分

新手上路

积分
28
 楼主| 发表于 2020-10-19 01:18:22 | 显示全部楼层
本帖最后由 dfsfjwfmlwsf 于 2020-10-19 09:27 编辑
eric2013 发表于 2020-10-18 09:23
Cache问题注意了没
感谢回复,已通过下面方法解决

解决办法:

  • 方法一:修改项目配置,选择支持DMA访问的AXI SRAM区域作为通用RAM起始地址。
  • 方法二:使用__attribute__((section(".ARM.__at_address")))指定DMA访问的目标地址为AXI SRAM区域。

下面分别介绍两种解决办法:



  • 修改项目配置。更改通用RAM起始地址为AXI SRAM(0x24000000),修改后如下图所示:
    [img]https://ss.csdn.net/p?[/img]

    修改通用RAM地址

  • 使用__attribute__((section( )))指定DMA访问的目标地址。
    在定义数组时,通过__attribute__((section(".ARM.__at_address")))指令把数组地址分配到AXI SRAM区域内即可(此时不需要修改项目配置)。
    下面以SAI外设为例:


  • // 指定数组地址



  • uint8_t SAI_Buffer_A[2 * 4] __attribute__((section(".ARM.__at_0x24000000")));







  • ...







  • // 开始DMA传输



  • HAL_SAI_Receive_DMA(&hsai_BlockA1, SAI_Buffer_A, 2)







  • ...







  • // SAI接收完成回调



  • void HAL_SAI_RxCpltCallback(SAI_HandleTypeDef *hsai)



  • {



  •   ...



  • }


通过以上两种方案,就可以解决STM32H7芯片使用DMA无效的问题。

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107070
QQ
发表于 2020-10-19 12:43:38 | 显示全部楼层
dfsfjwfmlwsf 发表于 2020-10-19 01:18
感谢回复,已通过下面方法解决
解决办法:方法一:修改项目配置,选择支持DMA访问的AXI SRAM区域作 ...

好的。
http://www.armbbs.cn/forum.php?m ... &extra=page%3D1

QQ截图20201019124649.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 10:03 , Processed in 0.169053 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表