用在AD7767(ADC采集芯片)。这个芯片有个数据就绪引脚DRDY,DRDY为电平时,SPI可以读取AD7767数据。我原本用的是外部中断去检测DRDY引脚,在外部中断函数里触发SPI_DMA传输。但由于频率太高,进入外部中断太频繁。现在现在想改成把DRDY引脚接到TIM某个通道,用TIM外部触发模式,来触发SPI_DMA,请问这样行得通吗?如果不行,不用外部中断有什么好办法? 用的是STM32H743 |
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。 你的确可以考虑将DRDY信号接到TIMER的输入捕获管脚,通过定时器的捕获事件来触发DMA,进而实现SPI的数据收发。 可以肯定这个思路是可行的。 我这里有个公开的应用分享建议你阅读下,应该有参考价值。它是通过TIMER事件触发DMA完成SPI的收发。 STM32定时器触发SPI逐字收发之应用示例 https://mp.weixin.qq.com/s?__biz=MzA3OTIxMjQyNQ==&mid=2650948888&idx=1&sn=5da2562d48cfa8f6a4c11f9be3c3019d&chksm=84401ffeb33796e8e642e12aa4235c179b1a83976eafabb2324e6ecbbfc579b159fbb28de9bc&token=226105126&lang=zh_CN#rd 你现在是使用的H7系列,提醒两点: 1、安排内存时,注意是你选择的DMA可以访问得到的; 2、因为H7系列往往涉及到D-CACHE,注意数据一致性方面的问题; 3、代码实现有些地方需要自行组织,没法简单调用库API;
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。
为什么说用外部中断会对cpu资源造成挑战呢
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。
你好有这个链接的源代码吗
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。
你好有这个链接的源代码吗
为什么说用外部中断会对cpu资源造成挑战呢
我是有时,主要指频繁的外部中断让CPU忙于应付它而又没时间去做别的意思。
你好有这个链接的源代码吗
抱歉,我找不到源代码了。 那个链接里把需要贴的代码都贴出来了。