flycamelaaa 发表于 2022-10-17 09:56

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

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操作

偷吻月亮 发表于 2022-10-27 03:46

好像DMA可以做到自己地址++吧,你可以网上搜搜

笨蛋无需搭理 发表于 2022-10-27 04:18

为啥不要用MCU控制呢?是怕时间占用的多?

笨蛋无需搭理 发表于 2022-10-27 04:52

你这个可以用CPU控制的方式实现的,其实F407主频很高,SPI速度也很快,不会影响什么的

林间有新绿 发表于 2022-10-27 05:24

这个你可以问问ST的技术支持的,看看他们有没有什么 好的办法

热爱童话世界 发表于 2022-10-27 05:56

你可以存一组数据,然后指针+1,但是不用MCU控制,估计不行

风吻过你的不羁 发表于 2022-10-27 06:28

你存完不给存储器写入么?不然下次来数据不就覆盖了么

可爱的白兔先生 发表于 2022-10-27 06:50

你搜搜DMA有没有地址自增的操作

flycamelaaa 发表于 2022-11-1 10:34

討厭和人归類 发表于 2022-10-27 02:10
是的,一般都是定时器捕捉实现DMA的启动

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

Undshing 发表于 2022-11-2 19:49

adc精度要求这么高?

SantaBunny 发表于 2022-11-2 23:23

可以用CPU控制的方式实现

MessageRing 发表于 2022-11-4 19:31

cpu控制太占用资源了

SantaBunny 发表于 2023-2-21 19:59

DC转换是把外面输入到引脚的电压值转换成数字信号,单片机里面有一个模拟至数字的转换模块,我们可以控制它采集引脚的电压,
页: [1]
查看完整版本: STM32F407如何实现用ADC的DATAREADY信号触发SPI通讯接收数据?