主题中讨论的其他器件: BQ34Z100EVM
您好!
我使用 TMS570 Launchpad (TMS570LS0432)连接 BQ34Z100EVM (电池电量监测计)。
BQ34Z100EVM 支持 I2C 协议、但 TMS570LS0432不支持 I2C。
因此、在搜索 E2E 社区后、我知道我们仍然可以将 TMS570LS0432和 BQ34Z100EVM 与 N2HET 进行通信。
我尝试运行该示例中提供的程序。 但我不能弄清楚以下几点:
哪个 N2HET 引脚用作 I2C 通信的 SDA()和 SCL()?
2.我要附上 main.c 的代码片段
/**@文件 sys_main.c
* @简要应用程序主文件
* @日期2014年9月9日
* @版本04.01.00
*
* 此文件包含一个空的主函数、
* 可用于应用程序。
*
/*(c) Texas Instruments 2009-2014、保留所有权利。 *
/*用户代码开始(0)*/
/*用户代码结束*/
/*包含文件*/
#include "sys_common.h"
/*用户代码开始(1)*/
#include "het.h"
#include "HET_IO_TEST.h"
#include "HET_EMU.h"
unsigned char *I2C1_txptr = NULL,*I2C1_rxptr = NULL;
unsigned char I2C1_TxData[5]={0、0、0、0};
unsigned char I2C1_RxData[20];
unsigned int Data_Send_HET = 0、Data_rece_HET = 0;
unsigned int Data_Send_I2C = 0、Data_rece_I2C = 0;
// unsigned int Stop_rece_I2C = 0;
unsigned int Start_Repeation=0;
char IntEna =1;
char rw = 0;//写入
char I2C_ADDR;// TODO:JC 20141024这是使 TI 仿真器代码正常工作的一种方法、是重构的候选方法
char NumOfBytes = 1;
/*用户代码结束*/
/**@fn void main (void)
* @应用程序主函数简介
* @请注意、默认情况下、此函数为空。
*
* 此函数在启动后调用。
* 用户可以使用此函数来实现应用程序。
*
/*用户代码开始(2)*/
/*用户代码结束*/
void main (void)
{
/*用户代码开始(3)*/
//设置 i2c 地址
I2C_ADDR = 0xAB;
int i;
NumOfBytes = 1;
字符 StopBit = 1;
volatile unsigned int wait_counter;
I2C1_txptr = I2C1_TxData;
I2C1_rxptr = I2C1_RxData;
hetInit();
hetREG1->INTENAS = 0xFFFFFFU; // TODO JC 20141024检查是否需要
hetREG1->GCR = 0x01010001; // TODO JC 20141024检查是否需要
_enable_IRQ (); // TODO JC 20141024检查是否需要
IntEna =1;
RW = 0;//写入
NumOfBytes = 1;
I2C1_TxData[0]= 0x02;//剩余电量百分比
HetI2CPutAddr (I2C_ADDR、RW、NumOfBytes、IntEna、StopBit);
for (WAIT_COUNTER=0;WAIT_COUNTER<0x18;WAIT_COUNTER++);//等待一段时间。
RW = 1;//读取
IntEna = 0;//无发送中断
HetI2CPutAddr (I2C_ADDR、RW、NumOfBytes、IntEna、StopBit);
while (1);
/*用户代码结束*/
}
/*用户代码开始(4)*/
/*用户代码结束*/
请帮助我进行沟通。
谢谢
Ritul Shah