硬汉嵌入式论坛

 找回密码
 立即注册
查看: 588|回复: 0
收起左侧

[SPI/QSPI] STM32H7的从机SPI DMA有个诡异的bug现象,但不影响使用

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2023-9-1 09:12:58 | 显示全部楼层 |阅读模式
测试条件:
1、H750或者H743。
2、HAL库版本V1.10及其以上

调用函数:
1、使能三个中断:

[C] 纯文本查看 复制代码
/* 配置DMA发送中断 */
HAL_NVIC_SetPriority(SPIx_DMA_TX_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(SPIx_DMA_TX_IRQn);
                        
/* 配置DMA接收中断 */
HAL_NVIC_SetPriority(SPIx_DMA_RX_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(SPIx_DMA_RX_IRQn);
                        
/* 配置SPI中断 */
HAL_NVIC_SetPriority(SPIx_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(SPIx_IRQn);


2、全部配置完毕后

从机SPI只要调用函数HAL_SPI_TransmitReceive_DMA,此时主机还没有发起操作,从机就会立即进入一次DMA发送中断,看中断标志是TC发送完成了。进一步测试发现,这个完全不影响后续的SPI DMA全双工。

由于这个诡异的现象,源码里面发送DMA不注册回调就非常好理解了(除了错误回调)。这个要是注册了,就会出现主机还没有发起操作就来了一个DMA发送完成中断。

12345.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 05:40 , Processed in 0.247023 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表