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/TMS570LS1227:TMP468温度传感器基于中断的轮询

Guru**** 2482105 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/702705/ccs-tms570ls1227-interrupt-based-polling-for-tmp468-temperature-sensor

器件型号:TMS570LS1227
主题中讨论的其他器件:HALCOGENTMP468

工具/软件:Code Composer Studio

大家好、  

我正在努力设置 TMS570LS1227PGE 作为 TI TMP48 ( )温度传感器的 I2C 上的主接收器。 如果有人能带我了解 HalCoGen 设置和 CCS 代码来读取该传感器、那将不胜感激。  

我已经花费了相当多的时间尝试自己连接传感器、下面是我的代码:

while (1){

/*等待 MST 位被清零,这将进行
*清除总线忙后的几个周期*/
//while (i2cIsMasterReady (i2cREG1)!= true);

/*配置要与*/通话的从机地址
i2cSetSlaveAdd (i2cREG1、Slave_Address);

/*将方向设置为发送器*/
/*注意:可选-在 Init 中完成*/
i2cSetDirection (i2cREG1、I2C_transmitter);

/*配置数据计数*/
/*读取之前从器件地址+字地址写入操作*/
i2cSetCount (i2cREG1、receive_data_setup);

/*将模式设置为主设备*/
i2cSetMode (i2cREG1、I2C_MASTER);

/*设置编程计数后停止*/
i2cSetStop (i2cREG1);

/*发送开始条件*/
i2cSetStart (i2cREG1);

/*发送字地址*/
i2cSend (i2cREG1,1,Slave_Word_address);

/*等待总线忙被清除*/
while (i2cIsBusy (i2cREG1)=true);

/*等待直到检测到停止*/
while (i2cIsStopDetected (i2cREG1)=0);

/*清除停止条件*/
i2cClearSCD (i2cREG1);

/********* /
////开始从从属方接收数据
/********* /

/*等待 MST 位被清零,这将进行
*清除总线忙后的几个周期*/
while (i2cIsMasterReady (i2cREG1)!= true);

/*配置要与*/通话的从机地址
i2cSetSlaveAdd (i2cREG1、Slave_Address);

/*将方向设置为接收器*/
i2cSetDirection (i2cREG1、I2C_RECEIVER);

/*配置数据计数*/
/*注:可选-在 Init 中完成,除非用户想要更改*/
i2cSetCount (i2cREG1、data_count);

/*将模式设置为主设备*/
i2cSetMode (i2cREG1、I2C_MASTER);

/*设置编程计数后停止*/
i2cSetStop (i2cREG1);

/*发送开始条件*/
i2cSetStart (i2cREG1);

/*轮询模式下的 Transmit data_count 数据数量*/
i2cReceive (i2cREG1、DATA_COUNT、RX_Data_Master);

/*等待总线忙被清除*/
while (i2cIsBusy (i2cREG1)=true);

/*等待直到检测到停止*/
while (i2cIsStopDetected (i2cREG1)=0);

/*清除停止条件*/
i2cClearSCD (i2cREG1);

asm (" nop");
asm (" nop");
asm (" nop");

vTaskDelay (10000);
} 

在 HCG 中、我已启用所有 i2c 中断、i2c pinmux、i2c VIM 通道和 i2c 驱动器。

我们非常感谢您的任何帮助、无论是建议还是代码。  

谢谢!

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

    您是否从传感器获取任何数据? CPU 是否卡在 while ()循环中? 请告诉我详情。 谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ben、

    我假设您已经解决了这个问题。