[研电赛技术支持] GD32 DAC+TIMER+DMA实现正弦波

[复制链接]
 楼主| 慢动作 发表于 2022-1-28 16:52 | 显示全部楼层
2.DMA传输步骤

1)从源地址读取数据

2)之后将读取的数据存储到目的地址

3.DAC和DMA是如何配合,实现数据的传输的?
 楼主| 慢动作 发表于 2022-1-28 16:54 | 显示全部楼层
1)(重点)DMA的外设握手

1171261f3af2a8f64f.png
 楼主| 慢动作 发表于 2022-1-28 16:55 | 显示全部楼层
1)从外设握手功能中,可以看到,在DMA给外设发送数据时,需要等外设给DMA控制器发送请求,之后DMA发送应答信号后,才会进行数据传输。
 楼主| 慢动作 发表于 2022-1-28 16:58 | 显示全部楼层
2)本实现结论:也就是说DAC给DMA一个请求(此请求由定时器触发),DMA才给DAC的发送一个数据;所以数据才能依次的传输过来。
 楼主| 慢动作 发表于 2022-1-28 16:59 | 显示全部楼层
4.任何一个DMA的通道都可以连接到DAC吗?

评论

错。不是的  发表于 2022-1-28 16:59
 楼主| 慢动作 发表于 2022-1-28 17:00 | 显示全部楼层
 楼主| 慢动作 发表于 2022-1-28 17:01 | 显示全部楼层
2)由映射图可知,DAC_CH0对应的只有DMA1的Channel2.
 楼主| 慢动作 发表于 2022-1-28 17:03 | 显示全部楼层
5.DMA配置过程中难点--外设地址的计算

1.一般是寄存器的地址;如DAC的DAC0_R12DH(DAC0 12位右对齐数据保持位)

实际地址(DAC0_R12DH)=实际地址(DAC0)+偏移地址(DAC0_R12DH)

1)实际地址(DAC0)---0x40007400
 楼主| 慢动作 发表于 2022-1-28 17:04 | 显示全部楼层
 楼主| 慢动作 发表于 2022-1-28 17:05 | 显示全部楼层
2)偏移地址(DAC0_R12DH)---0x08
9119661f3b1dc0e77c.png
 楼主| 慢动作 发表于 2022-1-28 17:07 | 显示全部楼层
3)实际地址(DAC0_R12DH)=0x40007408

九、结果波形
6482661f3b23924e7a.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部