打印

GD32F305的DMA能不能通过外部EXTI触发?

[复制链接]
1224|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tovax|  楼主 | 2024-3-4 11:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想通过外部EXTI的上升沿和下降沿分别触发两组DMA数据传输,请问GD32F305支持这种用法吗?

使用特权

评论回复
来自 2楼
cemaj| | 2024-3-10 07:33 | 只看该作者
DMA可以通过中断或事件来触发数据传输,但它的触发通常是由内部的硬件事件(如定时器、ADC转换完成等)触发的,而不是由外部中断(EXTI)直接触发。

使用特权

评论回复
板凳
olivem55arlowe| | 2024-3-6 07:41 | 只看该作者
GD32F305的DMA可以通过外部中断/事件控制器(EXTI)触发

使用特权

评论回复
地板
wengh2016| | 2024-3-6 08:30 | 只看该作者
外部中断(EXTI)是用来处理来自外部引脚的信号,例如按键按下、传感器信号等。当外部事件发生时,EXTI可以配置为生成中断请求,CPU会根据中断优先级和处理程序来响应这些中断。

使用特权

评论回复
5
tovax|  楼主 | 2024-3-6 10:13 | 只看该作者
olivem55arlowe 发表于 2024-3-6 07:41
GD32F305的DMA可以通过外部中断/事件控制器(EXTI)触发

十分感谢您的回复!
从"GD32F30x_User_Manual.pdf"上看的DMA请求,没有看到EXTI的触发,请问大概什么样的实现思路呢?

使用特权

评论回复
6
lihuami| | 2024-3-7 12:07 | 只看该作者
在EXTI的中断服务例程(ISR)中编写代码,当检测到外部事件时,手动启动DMA传输。这需要你在DMA传输完成之前一直保持对EXTI状态的监控,并确保在DMA传输启动后不会错过任何外部事件。

使用特权

评论回复
7
maqianqu| | 2024-3-7 14:00 | 只看该作者
没有直接提到GD32F305系列能否通过外部EXTI触发DMA,但从GD32系列的通用设计趋势来看,GD32F305确实可以通过EXTI触发DMA操作。

使用特权

评论回复
8
febgxu| | 2024-3-7 22:27 | 只看该作者
在EXTI中断服务函数中,设置DMA请求标志。当EXTI线路触发中断时,DMA控制器将自动执行相应的DMA传输。

使用特权

评论回复
9
jtracy3| | 2024-3-8 21:01 | 只看该作者
在GD32F305中,DMA传输可以通过配置EXTI来触发。具体操作如下:

配置EXTI的触发方式,选择适当的触发边沿(如上升沿或下降沿)。
使能相应的EXTI线,并设置其优先级。
在DMA的配置中,将EXTI设置为触发源。

使用特权

评论回复
10
vivilyly| | 2024-3-9 16:36 | 只看该作者
外部中断EXTI发生时,你可以在中断服务例程(ISR)中编写代码来启动DMA传输。这样,尽管DMA的启动不是由外部中断直接触发的,但它可以在外部中断发生后的软件处理过程中被间接触发。

使用特权

评论回复
11
sdlls| | 2024-3-9 21:00 | 只看该作者
如果GD32F305的硬件支持将外部中断与DMA事件相关联,那么可以配置EXTI来触发DMA。这可能需要查阅特定的硬件手册来确认是否支持这样的配置。

使用特权

评论回复
12
pl202| | 2024-3-10 16:24 | 只看该作者
GD32F305的DMA(直接内存访问)功能本身不支持通过外部EXTI(外部中断)直接触发。

使用特权

评论回复
13
jackcat| | 2024-3-10 22:47 | 只看该作者
选择一个可用的DMA通道,并将其配置为从EXTI线路接收触发请求。在DMA通道配置中,您需要设置源地址、目标地址、数据宽度、数据长度等参数。

使用特权

评论回复
14
mikewalpole| | 2024-3-11 14:33 | 只看该作者
配置EXTI线路以触发中断。在EXTI中断服务函数中,您可以设置DMA请求标志。

使用特权

评论回复
15
yorkbarney| | 2024-3-11 16:33 | 只看该作者
支持通过外部中断/事件控制器(EXTI)来触发DMA传输。

使用特权

评论回复
16
lzmm| | 2024-3-11 18:37 | 只看该作者
在进行配置时,您需要设置GPIO口连接到相应的外部中断/事件线,并配置中断口以选择中断或事件以及相应的触发类型。

使用特权

评论回复
17
jkl21| | 2024-3-11 20:37 | 只看该作者
在配置DMA传输时,可以设置相应的EXTI线(例如,EXTI线0-15)来触发DMA传输。在EXTI线产生上升沿或下降沿事件时,可以触发DMA传输,实现数据的自动传输。

使用特权

评论回复
18
updownq| | 2024-3-11 22:39 | 只看该作者
请查阅GD32F305系列的数据手册和用户指南

使用特权

评论回复
19
tovax|  楼主 | 2024-3-12 10:41 | 只看该作者
lihuami 发表于 2024-3-7 12:07
在EXTI的中断服务例程(ISR)中编写代码,当检测到外部事件时,手动启动DMA传输。这需要你在DMA传输完成之 ...

十分感谢您的回复!
最终使用定时器(TIMER1_CH2)来自动触发DMA0_CH0了,主要是为了避免进EXTI中断之后的操作(时序要求比较高)。

使用特权

评论回复
20
robincotton| | 2024-3-12 12:32 | 只看该作者
配置DMA通道,使其关联到该EXTI触发的DMA请求,并设置数据传输的相关参数

使用特权

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

本版积分规则

6

主题

25

帖子

0

粉丝