OpenEdv-开源电子网

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

STM32F407如何采样速度为1M的AD

[复制链接]

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-4
在线时间
19 小时
发表于 2017-9-4 16:17:12 | 显示全部楼层 |阅读模式
5金钱
如题,采用并口传输的方式,要求主频168MHz的407芯片1us读取一次PORTD->IDR的数据,怎么实现呢,定时器1us完全反应不过来啊。

最佳答案

查看完整内容[请看2#楼]

开DMA,定时器触发传输,直接吧输入寄存器的地址搞进去
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2017-9-4 16:17:13 | 显示全部楼层
开DMA,定时器触发传输,直接吧输入寄存器的地址搞进去
回复

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-4
在线时间
19 小时
 楼主| 发表于 2017-9-6 11:07:31 | 显示全部楼层
已经解决。
定时器还是1us,把中断里面判断和清除标志位之类的库函数去掉,改操作寄存器可以省点时间,然后就能腾出一点时间了。我首先试的是这个方法。结果成功了,就不去上DMA了,后期看看有没有这个必要吧。
回复

使用道具 举报

86

主题

567

帖子

0

精华

高级会员

Rank: 4

积分
825
金钱
825
注册时间
2014-9-30
在线时间
139 小时
发表于 2017-9-6 16:31:33 | 显示全部楼层
龙兄 发表于 2017-9-6 11:07
已经解决。
定时器还是1us,把中断里面判断和清除标志位之类的库函数去掉,改操作寄存器可以省点时间,然后 ...

你的 方法 CPU负荷 仍然 很高 哦。

你用的 HAL库 么 ? 还是 以前的 标准库 ?
回复

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-4
在线时间
19 小时
 楼主| 发表于 2017-9-6 18:47:29 | 显示全部楼层
caosix 发表于 2017-9-6 16:31
你的 方法 CPU负荷 仍然 很高 哦。

你用的 HAL库 么 ? 还是 以前的 标准库 ?

std的库。
HAL库不习惯
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11552
金钱
11552
注册时间
2014-4-1
在线时间
1317 小时
发表于 2017-9-6 21:06:52 | 显示全部楼层

并口传输,1M速度就不算啥了。

回复

使用道具 举报

86

主题

567

帖子

0

精华

高级会员

Rank: 4

积分
825
金钱
825
注册时间
2014-9-30
在线时间
139 小时
发表于 2017-9-7 11:22:09 | 显示全部楼层
xuande 发表于 2017-9-6 21:06
并口传输,1M速度就不算啥了。

  AD 采样的 数据 本身就是 12位 并口 的。
回复

使用道具 举报

63

主题

238

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1136
金钱
1136
注册时间
2015-11-29
在线时间
146 小时
发表于 2017-9-7 11:55:45 | 显示全部楼层
主要是配置蔡洋频率,我正在用AD7705
回复

使用道具 举报

17

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
897
金钱
897
注册时间
2016-2-16
在线时间
162 小时
发表于 2017-9-12 09:18:36 | 显示全部楼层
楼主,定时器定时1us,如何实现准确?我用定时器1定时1us,但有时候发现uc/os3操作系统在影响他,导致定时不准,甚至丢掉1us的情况,不知你如何解决的
回复

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-4
在线时间
19 小时
 楼主| 发表于 2017-9-12 11:26:30 | 显示全部楼层
hbyue 发表于 2017-9-12 09:18
楼主,定时器定时1us,如何实现准确?我用定时器1定时1us,但有时候发现uc/os3操作系统在影响他,导致定时 ...

我不是操作系统,STD库自带的函数实现的,定时中断里弄个IO口翻转查看,速度就是1us
回复

使用道具 举报

17

主题

142

帖子

0

精华

高级会员

Rank: 4

积分
897
金钱
897
注册时间
2016-2-16
在线时间
162 小时
发表于 2017-9-12 13:52:38 | 显示全部楼层
龙兄 发表于 2017-9-12 11:26
我不是操作系统,STD库自带的函数实现的,定时中断里弄个IO口翻转查看,速度就是1us

我用了操作系统,但是别的都没开启使能,启动操作系统,定时器就不准,不启用定操作系统,定时器就比较准?
回复

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-4
在线时间
19 小时
 楼主| 发表于 2017-9-13 09:19:59 | 显示全部楼层
hbyue 发表于 2017-9-12 13:52
我用了操作系统,但是别的都没开启使能,启动操作系统,定时器就不准,不启用定操作系统,定时器就比较准 ...

定时器是准的,我不知道用了操作系统是什么情况,没玩过
回复

使用道具 举报

2

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2017-9-4
在线时间
19 小时
 楼主| 发表于 2017-9-28 14:55:12 | 显示全部楼层
feiyang0725 发表于 2017-9-7 11:55
主要是配置蔡洋频率,我正在用AD7705

AD7705我的另一款仪器也在用
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 05:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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