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.

[参考译文] CCS/CC2640R2F:I2C 示例代码

Guru**** 2539500 points
Other Parts Discussed in Thread: TMP1075

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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/813723/ccs-cc2640r2f-i2c-example-code

器件型号:CC2640R2F
主题中讨论的其他器件:TMP1075

工具/软件:Code Composer Studio

您好!

我正在使用 TMP1075的 I2C 示例代码。  

I2C 正常工作、或者我只是读取传感器的器件 ID。

我正在使用以下方法、但未获得正确的器件 ID。

有人能帮我解决这个问题吗?

#include 
#include 
#include 

/*驱动程序头文件*/
#include 
#include 
#include 

/*示例/板头文件*/
#include "Board.h"

#define TASKSTACKSIZE 640

#define TMP1075_ADDR 0x48
#define DEVICE_ID_REG 0x0F /*器件 IDRegister */

#ifndef Board_TMP_ADDR
#define Board_TMP_ADDR TMP1075_ADDR
#endif

static Display_Handle display;

//
*=== mainThread ====
//
void * mainThread (void * arg0)
{

uint8_t txBuffer[8];
uint8_t rxBuffer[8];

I2C_Handle i2c;

static I2C_Params i2cParams;


//调用驱动程序初始化函数*/
Display_init ();

//打开主机显示屏以输出**/
display = Display_open (i2C_init);







// if init*(i2C_params = NULL);*(i2C_init);(i2C_init);// if)

i2cParams.bitrate = I2C_100kHz;
i2cParams.transferMode = I2C_MODE_BLOCKING;

i2c = I2C_OPEN (Board_I2C_TMP、&i2cParams);

if (i2c =NULL)
{
Display_printf (display、0、0、"Error Initializing I2C\n");
while (1);
}
否则
{
Display_printf (display、0、0、"I2C initialized!\n");
}

txBuffer[0]= device_ID_REG;

i2cTransaction.slaveAddress = Board_TMP_ADDR;

i2cTransaction.writeBuf = txBuffer;
i2cTransaction.readBuf = rxBuffer;
i2cTransaction = writeCount;
i2cTransaction.ReadCount = 2;

for (;;)
{

I2C_transfer (i2c、&i2cTransaction);
Display_printf (display、0、0、"设备 ID:%x %x"、rxBuffer[0]、rxBuffer[1]);
Sleep (1);
}

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

    您好!  

    您从 I2C 读取了什么内容?

    发布代码时、请使用"使用语法突出显示器插入代码"。  

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

    我想读取只读的器件 ID 寄存器。

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

    您从 I2C 获得了什么?

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

    每当我读取器件 ID 时、它应该显示0x7500、但它显示 FFFF。

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

    您好!

    是否确定 在其他地方未定义 Board_TMP_ADDR、因此代码未使用正确的地址? 此外、我假设传感器针对地址0x48进行了正确配置?

    您是否了解了具有逻辑分析仪的实际 I2C 总线?

    此致、
    Fredrik

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

    您是否有符合规格的上拉电阻器?