打印
[应用相关]

AT32 I2S使用DMA半传输及传输完成中断来实现DMA双缓冲...

[复制链接]
1889|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 ArterySW 于 2020-12-9 18:31 编辑

本文主要演示AT32F403A I2S使用DMA半传输及传输完成中断的组合使用来实现DMA双缓冲存储接收数据的方法。

支持型号列表:
        AT32F403Axx
主要使用外设列表:
         I2S & DMA

1        快速使用方法
1.1        硬件资源
1)        AT-START-F403A V1.0开发板
2)        SPI2:PB12,PB13,PB15;SPI3:PA15, PB3,PB5
图1. AT-START-F403A V1.0开发板

1.2        软件资源
1)        SourceCode
?        SPI_DMA_Use_HTandTC 源程序  
注:        project都是基于keil 5而建立,若用户需要在其他编译环境上使用,请参考AT32F4xx_StdPeriph_Lib_V1.x.x\Project\xxx\Templates中各种编译环境(例如IAR6/7,keil 4/5)进行简单修改即可。
1.3        示例使用
1)        打开 SPI_DMA_Use_HTandTC 源程序,编译后下载到实验板
2)        连线方式
PB12 < ---- > PA15
PB13 < ---- > PB3
PB15 < ---- > PB5
图2. Keil 工程选择

3)        通信成功且数据无误,LED2会点亮。
说明:本文只提供一种方法参考,可能切合某些实际应用的话(比如允许更改DMA目的地址等),还有更加合理的方法,所以需要具体问题具体讨论。

SPI_DMA_Use_HTandTC_V1.0.0.zip

983.52 KB

SC0064_AT32使用DMA半传输完成达到双缓冲效果.pdf

314.62 KB

使用特权

评论回复
沙发
里面有晴雨| | 2020-12-11 17:53 | 只看该作者
这个太棒了,我在想,是不是都可以这样模拟比较好一些。

使用特权

评论回复
板凳
hoop| | 2020-12-11 18:14 | 只看该作者
里面有晴雨 发表于 2020-12-11 17:53
这个太棒了,我在想,是不是都可以这样模拟比较好一些。

如果DMA自带双缓冲的话,使用它的双缓冲肯定是最优的。如果DMA没有自带双缓冲的话,个人觉得这是一个不错的方法,至少可以给处理DMA接收到的数据预留了更多时间。

使用特权

评论回复
地板
musich| | 2020-12-13 18:16 | 只看该作者
真不错.

使用特权

评论回复
5
起点116| | 2022-2-25 23:39 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

179

主题

274

帖子

10

粉丝