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.

[参考译文] TMS320F28374S:对 I2C 例程6中的变量"temp"设计感到困惑

Guru**** 2386600 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1342223/tms320f28374s-confusion-about-the-variable-temp-design-in-i2c-routine-6

器件型号:TMS320F28374S

您好!

这个问题之前已经提到过,但并没有完全回答我的困惑。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1284151/tms320f28374s-why-design-variable-temp-like-this-in-i2c_ex6

在本演示中、变量"temp"合并为

另外、通过以下操作发送"温度":

for (I=I2C_Params->NumOfAddrBytes-1;i>=0;i--)
{
I2C_putData (base、(temp >>(I*8U))和0xFF);

但在此演示中、 I2C_Params->NumOfAddrBytes 为2。

因此、有完全两个周期操作:

首次将"温度"右移8位、发出"高8位"。

第二次、用0位右移"temp"、并发出"低8位"。

至于"NumOfDataBytes"、几乎没有任何操作。

我不知道哪里错了。

另一个问题是数据会被发送出去、之后会触发发送 FIFO 中断。

但发送和接收的 FIFO 深度为0和2。

I2C_setFIFOInterruptLevel (I2CA_BASE、I2C_FIFO_TXEMPTY、I2C_FIFO_RX2);

如何理解0发送 FIFO 级别? 手册中 提到"发送 FIFO 可配置为在接收完成后
传输定义的字节数"。 此处定义的字节 unmber 为0?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    我们会花几 天时间与您联系。

    此致

    西达尔特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!  

    对不起响应出现延迟。  

    使用 temp 变量将地址字节发送出去。  

    我不确定  NumOfDataBytes 的意思是零。  在演示中, NumOfDataBytes 在任何地方都不为零。  请澄清一下。

    此致

    西达尔特