This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
我刚刚开始对 TMS320F2812进行编程、并查看了示例文件 Example_281xSciFFDLB_int.c、以便使用 FIFO 缓冲区和中断对串行通信接口进行编程。 在 scia_fifo_init()和 scib_fifo_init()两个函数中,通过设置多个寄存器来初始化通信。 我不明白为什么 FIFO 发送寄存器 SCIFFTX 获得值0xC028。 根据参考指南(SPRU051D) 、当状态位(TXFFST)等于或小于中断级别位(TXFFIL)时、将生成中断。 我假设状态位根据 FIFO 中的字数动态更新。 但是、如果值为0xC028、则状态位为00000、中断级别位为01000、因此状态位等于或小于中断级别位。 这是否意味着持续存在中断、直到 FIFO 缓冲区中有01000=8个字? 此外、我假设这些不是软件中断、而是由硬件处理。 如果有人能给我一些答案,我将不胜感激。 在参考指南中、我没有找到太多有关此内容的信息。
此致、Michiel van Rijnbach。
谢谢 Vince、这正是我需要知道的。 我曾假设它是这样工作的、但在参考指南中找不到详细信息。 我想知道用它写 FIFO 寄存器中的状态位是什么、但很显然、它们正由硬件更新。 这些中断是否在每个时钟周期生成?
此致、Michiel。
状态位是只读的、因此当您写入整个寄存器时、只会更改可写的位。
对于中断、它将在满足上述条件且中断标志已清除时生成。
谢谢、
Vince Rodriguez