英飞凌
直播中

汪潇潇

7年用户 845经验值
私信 关注

TC3E7控制器在AURIX中实现QSPI遇到的疑问求解

我使用的是 TC3E7 控制器。 我曾尝试在 AURIX 中实现 QSPI。 为此,我编写了自己的寄存器级代码。
问题是我为 QSPI 代码添加了中断。 ISR 不会立即被调用。 每当触发中断时,例程不会立即得到服务。 在中断寄存器中,我可以看到挂起很长时间。 我想知道我错过了什么。 我在 SRPN 中赋予了 0xF1 的高优先级。
SRC_QSPI3RX.SRR=pending;
SRC_QSPI4RX.U=0;
SRC_QSPI4RX.B.SRPN=QSPI4_RX_Priority;
SRC_QSPI4RX.B.SRE=1;
SRC_QSPI4RX.B.CLRR=1;
SRC_QSPI4RX.B.TOS=0;


回帖(1)

王越建

2024-7-4 16:55:26
以下是一些建议和可能的原因:

1. 确保您正确配置了 QSPI 控制器。检查 QSPI 寄存器设置,确保它们与您的硬件和需求匹配。

2. 确保您正确设置了中断优先级。您已经为 QSPI 接收中断分配了 0xF1 的高优先级,这是正确的。但是,请确保没有其他中断具有更高的优先级,这可能会阻止 QSPI 中断被立即处理。

3. 检查中断使能。确保您已经使能了 QSPI 接收中断。在您的代码中,您已经设置了 SRC_QSPI4RX.B.SRE=1,这是正确的。

4. 确保您的中断服务例程(ISR)正确编写。检查 ISR 是否正确处理中断,并在完成处理后清除中断标志位。

5. 检查其他可能影响中断响应的因素。例如,确保您的系统时钟设置正确,因为时钟设置可能会影响中断响应时间。

6. 使用调试工具检查中断处理流程。使用调试器逐步执行代码,观察中断触发和处理的过程,以确定问题所在。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分