你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何用TIM外部触发模式,去触发SPI_DMA传输

[复制链接]
Tiramisu_ 提问时间:2023-2-9 11:39 / 未解决

用在AD7767(ADC采集芯片)。这个芯片有个数据就绪引脚DRDY,DRDY为电平时,SPI可以读取AD7767数据。我原本用的是外部中断去检测DRDY引脚,在外部中断函数里触发SPI_DMA传输。但由于频率太高,进入外部中断太频繁。现在现在想改成把DRDY引脚接到TIM某个通道,用TIM外部触发模式,来触发SPI_DMA,请问这样行得通吗?如果不行,不用外部中断有什么好办法?

用的是STM32H743

收藏 评论6 发布时间:2023-2-9 11:39

举报

6个回答
xmshao 回答时间:2023-2-9 13:20:50
基于外部中断再来触发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;
骑猪看世界 回答时间:2023-2-9 13:25:22

xmshao 发表于 2023-2-9 13:20
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。</p>
<p>

为什么说用外部中断会对cpu资源造成挑战呢

Tiramisu_ 回答时间:2023-2-9 14:49:10

xmshao 发表于 2023-2-9 13:20
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。</p>
<p>

你好有这个链接的源代码吗

Tiramisu_ 回答时间:2023-2-9 14:50:00

xmshao 发表于 2023-2-9 13:20
基于外部中断再来触发DMA传输有时可能对CPU资源是个挑战。</p>
<p>

你好有这个链接的源代码吗

xmshao 回答时间:2023-2-10 15:59:35

骑猪看世界 发表于 2023-2-9 13:25
为什么说用外部中断会对cpu资源造成挑战呢

我是有时,主要指频繁的外部中断让CPU忙于应付它而又没时间去做别的意思。

xmshao 回答时间:2023-2-10 16:00:24

Tiramisu_ 发表于 2023-2-9 14:50
你好有这个链接的源代码吗

抱歉,我找不到源代码了。

那个链接里把需要贴的代码都贴出来了。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版