OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3158|回复: 10

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

[复制链接]

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-8-26
在线时间
23 小时
发表于 2018-10-16 15:43:11 | 显示全部楼层 |阅读模式
50金钱
本帖最后由 了表心意 于 2018-10-16 15:56 编辑

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

基本实现1013.rar

3.31 MB, 下载次数: 28

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-10-16 18:21:27 | 显示全部楼层
发送的是什么接口? usart? SPI? IIC?
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-8-26
在线时间
23 小时
 楼主| 发表于 2018-10-16 18:24:38 | 显示全部楼层
edmund1234 发表于 2018-10-16 18:21
发送的是什么接口? usart? SPI? IIC?

直接IO口驱动 必须搭载到这三种传输方式吗 ?
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2018-10-16 18:26:01 | 显示全部楼层
可以的,具体可以看下中文参考手册
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-10-16 18:29:35 | 显示全部楼层
了表心意 发表于 2018-10-16 18:24
直接IO口驱动 必须搭载到这三种传输方式吗 ?

没说过一定要这三种传送方式, 只是你不说清楚问题,想回复你的就只能猜啊
IO也可以, 用TIM的OC就可以直接触发DMA搬数据到CCRx
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-8-26
在线时间
23 小时
 楼主| 发表于 2018-10-16 18:33:44 | 显示全部楼层
edmund1234 发表于 2018-10-16 18:29
没说过一定要这三种传送方式, 只是你不说清楚问题,想回复你的就只能猜啊
IO也可以, 用TIM的OC就可以 ...

现在的程序 烧录进去是DCLK的时间太长有1.3us 的周期  达不到理想的要求  MBI 的手册上说极限的DCLK 是15ns的周期频率 所以现在的程序 想问下怎么样才能提高DCLK的频率
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-10-16 18:55:01 | 显示全部楼层
本帖最后由 edmund1234 于 2018-10-16 18:57 编辑
了表心意 发表于 2018-10-16 18:33
现在的程序 烧录进去是DCLK的时间太长有1.3us 的周期  达不到理想的要求  MBI 的手册上说极限的DCLK 是15 ...

TIM_OC+DMA 或 TIM_PWM+DMA
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-8-26
在线时间
23 小时
 楼主| 发表于 2018-10-16 19:35:23 | 显示全部楼层
edmund1234 发表于 2018-10-16 18:55
TIM_OC+DMA 或 TIM_PWM+DMA

有点模糊 是定时器触发DAM发送数据,DMA 配置有点模糊 地址是怎样移动的
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2018-10-16 19:41:02 | 显示全部楼层
了表心意 发表于 2018-10-16 19:35
有点模糊 是定时器触发DAM发送数据,DMA 配置有点模糊 地址是怎样移动的

从零开始我是没办法一条一条的给你讲的
ST的StdPeripha_Driver有例程,还有去官网下一份AN4776, 它有详细告诉你怎样用TIM
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-8-26
在线时间
23 小时
 楼主| 发表于 2018-10-17 11:23:18 | 显示全部楼层
本帖最后由 了表心意 于 2018-10-17 11:33 编辑
edmund1234 发表于 2018-10-16 19:41
从零开始我是没办法一条一条的给你讲的
ST的StdPeripha_Driver有例程,还有去官网下一份AN4776, 它有详 ...

我了解了 我先试试
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
69
金钱
69
注册时间
2018-8-26
在线时间
23 小时
 楼主| 发表于 2018-10-17 11:24:29 | 显示全部楼层
本帖最后由 了表心意 于 2018-10-17 11:51 编辑
edmund1234 发表于 2018-10-16 19:41
从零开始我是没办法一条一条的给你讲的
ST的StdPeripha_Driver有例程,还有去官网下一份AN4776, 它有详 ...

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

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 21:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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