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

STM32H743 SPI从进入DMA完成中断时间疑问

[复制链接]
zhaaang 提问时间:2024-5-8 19:11 / 未解决

743 单工只接收SPI做从接收AD7768非标准SPI口数据时发现,DMA接收固定长度数据后,并未立即进入DMA传输完成中断,而是在SPI的CS拉高后才进入了DMA传输完成中断。从现象看DMA传输完成中断不是以指定数据传输完成就可以进中断?有好心人可以指路下相关资料么?

补充波形和代码,还请帮看下是测量逻辑不对?

主机输出非标准SPI,黄色CS,蓝色MOSI,红色SCK。DMA接收长度为32字,理论蓝色数据传输完进中断

Tek021.png

批注2024-05-09161236.png

DMA中断内控制GPIO引脚,红色波形为GPIO,GPIO置高时远在DMA传输完成之后。

Tek019.pngTek020.png

收藏 评论6 发布时间:2024-5-8 19:11

举报

6个回答
STMCU-管管 回答时间:2024-5-9 08:32:31
看看参考手册里边对于的配置
butterflyspring 回答时间:2024-5-9 09:46:42
DMA 和 SPI 是两个不同的外设。 DMA 基于SPI 的request 给与响应,但是这个request 没有 CS信号。

不过DMA的响应和搬运完成再到产生中断是需要一定时间的。
也有可能延迟后恰巧和CS 上升的时间差不多。

xmshao 回答时间:2024-5-9 10:10:26
DMA传输完成中断肯定是当DMA完成指定数据个数的传输后就发生的,跟SPI的CS是否拉高没有关系。


如果SPI的CS不拉高 难道就不发生DMA传输完成中断了?估计是你测量或评估上的误会。
zhaaang 回答时间:2024-5-9 16:30:49

butterflyspring 发表于 2024-5-9 09:46
DMA 和 SPI 是两个不同的外设。 DMA 基于SPI 的request 给与响应,但是这个request 没有 CS信号。</p>
<p>不过DMA ...

您好,我补充波形和代码,还请帮看下是我哪里的逻辑不对么?谢谢

zhaaang 回答时间:2024-5-9 16:31:05

xmshao 发表于 2024-5-9 10:10
DMA传输完成中断肯定是当DMA完成指定数据个数的传输后就发生的,跟SPI的CS是否拉高没有关系。</p>
<p>

您好,我补充波形和代码,还请帮看下是我哪里的逻辑不对么?谢谢

butterflyspring 回答时间:2024-5-10 17:02:51
从中断服务函数上看,改了库的架构,仅仅判断DMA 完成中断。

不过通常Cube库都是同时使能了DMA的其他中断,尤其是半完成中断。

楼主可以检查一下,如果使能了而没处理的话,那执行起来就会有影响了。


可以看看这一点。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版