求助,改成定时器触发DMA的传输方式!!!

2019-07-21 09:00发布

本帖最后由 了表心意 于 2018-10-16 15:56 编辑

以前的程序是常规的软件触发的数据发送的方式,发送的速率太慢,达不到系统的要求,软件通过库函数或者直接写寄存器都达不到硬件触发的速度,  同事提议用定时器触发DMA触发数据传输可以达到预期标准,具体的操作感觉有点模糊,DMA 不是用来发送数据的吗,怎么能够触发系统的操作,具体要怎么改 求大神指点指点下

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
了表心意
1楼-- · 2019-07-21 22:35
edmund1234 发表于 2018-10-16 18:55
TIM_OC+DMA 或 TIM_PWM+DMA

有点模糊 是定时器触发DAM发送数据,DMA 配置有点模糊 地址是怎样移动的
edmund1234
2楼-- · 2019-07-22 03:58
 精彩回答 2  元偷偷看……
了表心意
3楼-- · 2019-07-22 06:46
本帖最后由 了表心意 于 2018-10-17 11:33 编辑
edmund1234 发表于 2018-10-16 19:41
从零开始我是没办法一条一条的给你讲的
ST的StdPeripha_Driver有例程,还有去官网下一份AN4776, 它有详 ...

我了解了 我先试试
了表心意
4楼-- · 2019-07-22 11:16
本帖最后由 了表心意 于 2018-10-17 11:51 编辑
edmund1234 发表于 2018-10-16 19:41
从零开始我是没办法一条一条的给你讲的
ST的StdPeripha_Driver有例程,还有去官网下一份AN4776, 它有详 ...

还是有点想不通 用DMA 怎么传输的
看的教程都是把内存地址放到串口的  USART->DR中  
然后经过串口发送的  而
这个程序是直接IO 读取数组的的数值然后拉高拉低IO口发送数据的
怎么换成DMA 传输的  或者说 吧内存数组的地址位置传到哪里去了
可以把memory传送到GPIO中 是这样写的吗?

一周热门 更多>