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.

[参考译文] TMS570LC4357:无法重复发送 I2C 消息。

Guru**** 2467930 points
Other Parts Discussed in Thread: HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1060898/tms570lc4357-inability-to-repeat-transmission-of-i2c-messages

器件型号:TMS570LC4357
主题中讨论的其他器件:HALCOGEN

大家好、我创建了一个简单的程序来向温度传感器发送消息(我现在不使用 I2C2端口进行确认):

CCS 7.0.0.00042

HALCoGen 04.07.01

void start (void){

unsigned char data[8];
unsigned slave_address;
SLAVE_ADDRESS = 0x48;
unsigned char num_Bytes = 1;
unsigned char num_count = 1;
unsigned char 修饰符= 0x80;
unsigned char set_stop = 1;
sciInit();
i2cInit();
i2cSetOwnAdd (i2cREG1、1);//自有地址
i2cSetSlaveAdd (i2cREG1、SLAVE_ADDRESS);//从地址
i2cSetOwnAdd (i2cREG2、2);//自有地址
i2cSetSlaveAdd (i2cREG2、1);//从地址

操作

sciReceive (sciREG1、1、data);//轮询要接收的命令
DATA[0]= DATA[0]|修饰符;
i2cSetCount (i2cREG1、num_count);
i2cSetStart (i2cREG1);
i2cSend (i2cREG1、num_Bytes、data);
如果(SET_STOP = 1) i2cSetStop (i2cREG1);
i2cSetMode (i2cREG1、I2C_MASTER);

while (true);

}//结束 main()

这些调用可能不完全符合用户指南、但这是我获得可重复操作的唯一方法。

在初始化值的情况下、我可以通过键盘条目重复发送单字节消息(当传感器命令需要时)。

如果我使用 debug 将 num_Bytes 和 num_count 修改为3、我可以为3字节消息发送一个正确命令字节的字符串-这是将 SET_STOP 设置为1或0的情况。

它似乎已正确终止、但与单命令模式不同、我无法在两行中获得任何进一步命令的活动。

感谢您的任何建议。

谢谢