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.

[参考译文] TM4C1294NCPDT:I2C总线

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1104230/tm4c1294ncpdt-i2c-bus

零件号:TM4C1294NCPDT

团队成员,您好,正在为客户寻求帮助。

在i2c总线上进行通信的包装程序。这种封装程序如下所示:  

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int8_t user_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr)
{
int8_t rslt = 0; /* Return 0 for Success, non-zero for failure */
uint8_t i = 0;
/*
* The parameter intf_ptr can be used as a variable to store the I2C address of the device
*/
/*
* Data on the bus should be like
* |------------+---------------------|
* | I2C action | Data |
* |------------+---------------------|
* | Start | - |
* | Write | (reg_addr) |
* | Stop | - |
* | Start | - |
* | Read | (reg_data[0]) |
* | Read | (....) |
* | Read | (reg_data[len - 1]) |
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

在查看总线上发生的情况的范围上,请参阅以下 内容:

地址正确,数据发送也正常,但我想知道为什么第二个插槽不是读取插槽。 主控制器发送相同的牵引时间。 我的第一个插槽就像我们看到的一样,第二个插槽必须是同一地址上的一个读取插槽。如果你需要更多信息,请告诉我。谢谢你的帮助。

提前感谢您的帮助。

标记

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

    您好,

    地址1294地址正确,数据发送也正常,但我想知道为什么第二个插槽不是读取插槽。 [/引述]

    在您的第27行中,您指定了对I2C总线的第一个写入。 在第38行中,再次指定另一个写入。 第27行和第28行的呼叫如下。  

    I2CMasterSlaveAddrSet (I2C0_BASE,*(uint8_t *) intf_ptr,FALSE);// FALSE表示写入;TRUE表示读取。 如果要阅读,则需要更改为true。