打印
[STM32F4]

STM32F407如何实现用ADC的DATAREADY信号触发SPI通讯接收数据?

[复制链接]
838|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
flycamelaaa|  楼主 | 2022-10-17 09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32F407外接24位ADC, 用ADC的DATAREADY信号触发SPI通讯接收数据,且希望启动DMA存储一组ADC数据,这个应用怎么实现?查了网上帖子建议用timer事件捕捉响应DATAREADY信号启动SPI的DMA通讯,SPI是8位或16位的数据传输,而ADC的数据是24位或32位的,所以可以用SPI的DMA接收3个Byte或4个Byte,完成一个数据的接收,但是问题在于,下一次DATAREADY信号来了以后,如何不要CPU的干预把DMA的接收地址自动增加到下一个数据地址?

使用特权

评论回复
沙发
討厭和人归類| | 2022-10-27 02:10 | 只看该作者
是的,一般都是定时器捕捉实现DMA的启动

使用特权

评论回复
板凳
一枝香| | 2022-10-27 02:42 | 只看该作者
咦,你这是什么需求啊,要求这么高的ADC精度呀

使用特权

评论回复
地板
銀河| | 2022-10-27 03:14 | 只看该作者
好像不能不用CPU干预吧,虽然我没做过你说的这种项目,但是地址加加这种,估计还得CPU操作

使用特权

评论回复
5
偷吻月亮| | 2022-10-27 03:46 | 只看该作者
好像DMA可以做到自己地址++吧,你可以网上搜搜

使用特权

评论回复
6
笨蛋无需搭理| | 2022-10-27 04:18 | 只看该作者
为啥不要用MCU控制呢?是怕时间占用的多?

使用特权

评论回复
7
笨蛋无需搭理| | 2022-10-27 04:52 | 只看该作者
你这个可以用CPU控制的方式实现的,其实F407主频很高,SPI速度也很快,不会影响什么的

使用特权

评论回复
8
林间有新绿| | 2022-10-27 05:24 | 只看该作者
这个你可以问问ST的技术支持的,看看他们有没有什么 好的办法

使用特权

评论回复
9
热爱童话世界| | 2022-10-27 05:56 | 只看该作者
你可以存一组数据,然后指针+1,但是不用MCU控制,估计不行

使用特权

评论回复
10
风吻过你的不羁| | 2022-10-27 06:28 | 只看该作者
你存完不给存储器写入么?不然下次来数据不就覆盖了么

使用特权

评论回复
11
可爱的白兔先生| | 2022-10-27 06:50 | 只看该作者
你搜搜DMA有没有地址自增的操作

使用特权

评论回复
12
flycamelaaa|  楼主 | 2022-11-1 10:34 | 只看该作者
討厭和人归類 发表于 2022-10-27 02:10
是的,一般都是定时器捕捉实现DMA的启动

你不想和人归类你难道想和。。。。。

使用特权

评论回复
13
Undshing| | 2022-11-2 19:49 | 只看该作者
adc精度要求这么高?

使用特权

评论回复
14
SantaBunny| | 2022-11-2 23:23 | 只看该作者
可以用CPU控制的方式实现

使用特权

评论回复
15
MessageRing| | 2022-11-4 19:31 | 只看该作者
cpu控制太占用资源了

使用特权

评论回复
16
SantaBunny| | 2023-2-21 19:59 | 只看该作者
DC转换是把外面输入到引脚的电压值转换成数字信号,单片机里面有一个模拟至数字的转换模块,我们可以控制它采集引脚的电压,

使用特权

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

本版积分规则

667

主题

2844

帖子

0

粉丝