大家好!
我正在为 TM4C123GH6PM MCU 开发一种中断驱动 SSI (SPI)驱动程序、我看到了一些有关中断生成的奇怪行为。 首先、我想在传输完成时触发一个中断、该标志为 SSI_TXEOT (值为0x40)。 TM4C123的数据表指出此中断应该可用、但仔细查看屏蔽的中断状态寄存器(SSIMIS)时、我们只能访问前3位、 根据 EOT 位、似乎第三位与 FIFO 半空或少于半空或 TX 完成共享一个中断条件。 在这种情况下、EOT 位是什么? 我不知道该怎么说。"
其次、当我为 FIFO 半满或少于半满条件启用中断(值为0x08的 SSI_TXFF)时、我的中断处理程序会立即触发、而主 while 循环从未运行。 可能语言尚不清楚、但对我来说、如果中断在半空或更少的传输 FIFO 上触发、 然后、我们启用该中断后、它将持续触发、因为 TX FIFO 始终为半空或更少、因为我们还没有机会在其中放置任何东西。 这是正确的假设吗?
概括地说、如果我使用标志 SSI_TXEOT 启用中断、那么就不会触发中断、我想这是有道理的、因为 SSIMIS 只允许屏蔽到第3位。 但是、如果我用标志 SSI_TXFF 启用中断、中断处理程序会立即触发、而主函数无法运行、因为中断处理程序不断触发、所以主任务基本上无法运行。
感谢您的任何澄清、谢谢!
加兰·凯尔


