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.
您好!
根据 TMS320F2838x TRM 第45.5.14节的规定、TMS320F28388D 图45-13
msgRAMConfigParams.txFIFOSize = 7U;// Tx FIFO/队列。
现在、如果 Put index =7、获取 index =2、则调用
MCAN_writeMsgRam (MCAN0_BASE、MCAN_MEM_TYPE_FIFO、0U、&txMsg);
// //启用传输中断。 // MCAN_txBufTransIntrEnable (MCAN0_BASE、FIFO 状态.putIdx、1U); // //添加传输请求。 // MCAN_txBufAddReq (MCAN0_BASE、FIFO 状态.putIdx);
之后,如果 Put 索引= 0,我想 Kown 吗? 也就是说、FIFO 是圆形 FIFO 吗?
您好!
是的、这是一个循环 FIFO、一旦 Get 索引到达 FIFO 的末尾、任何新的写入操作都将写入索引= 0。
请注意、索引从0开始、而不是从1开始
此致、
Praveen
您好!
我不清楚:
1)使用 TX FIFO 时、主机已收发消息、 TX Get 索引 是否加1? 如果是、为什么 我 看不到 SW 执行此操作?
2)当使用 RX FIFO 时、主机已收到消息、RX PUT 索引加1吗? 如果是、为什么 我看不到 SW 执行此操作?
您好!
您能不能澄清一下"为什么我看不到 SW 这么做?"是什么意思? 您是否正在尝试了解软件为什么不递增索引? 不同的索引由硬件控制、对于软件为只读。
此致、
Praveen
您好!
是的。我是指当 TX 缓冲区发送消息或 Rx 缓冲区接收消息时、SW 为何不会交换 Get 索引或 Put 索引。
不同的索引由硬件控制。 当 TX 缓冲区发送消息或 Rx 缓冲区接收消息时,如何读取 Get 索引或 Put 索引?
雅美
TX/RX 的 Get 索引和 Put 索引在各自的状态寄存器(MCAN_TXFQS、MCAN_RXFxS)中可用。 无论何时、SW 都可以读取这些值以了解当前索引。
此致、
Praveen