“线程:HALCOGEN”中讨论的其它部件
您好,
我使用 I2C 时遇到问题。 我正在尝试将 TMS570 (主模式)中的数据发送到 STS-35,从动数字温度传感器。 但是,MCU 不发送数据。 我用 HALCOGen 的例子来使用它。
代码如下:
//STS35测量
UINT8_t TPU = 0;
对于(i = 0;i <255;I++)
对于(TPU = 0;TPU<5;TPU++);
/*配置从属设备的地址以与*/通话
i2cSetSlaveAdd(i2cREG1, STS35_Address);
sciSend (scilinREG,22,(无符号字符*)“I2C 从配置\r\n”);
/*将方向设为发射器*/
/*注:可选-在 Init 中完成*/
i2cSetDirection (i2cREG1,I2C_TRANSMENT);
sciSend (scilinREG,41,(无符号字符*)“已配置发送器的 I2C 方向\r\n”);
/*配置数据计数*/
/*数据计数(字词地址)*/
i2cSetCount (i2cREG1,STS35_BSIZE);
sciSend (scilinREG,27,(无符号字符*)“I2C 数据计数已配置\r\n”);
/*将模式设置为主模式*/
i2cSetMode (i2cREG1,I2C_MASTER);
sciSend (scilinREG,28,(无符号字符*)“I2C 主模式已配置\r\n”);
/*设置预设计数后的停止*/
i2cSetStop(i2cREG1);
sciSend (scilinREG,25,(无符号字符*)“I2C 停止位已配置\r\n”);
/*发射开始条件*/
i2cSetStart(i2cREG1);
sciSend (scilinREG,26,(无符号字符*)“I2C 起始位已配置\r\n”);
/*在轮询模式下传输数据计数*
i2cSend (i2cREG1,STS35_BSIZE,TX_Pack);
sciSend (scilinREG,16,(无符号字符*)“I2C 发送字节\r\n”);
/*等待总线忙线被清除*/
while (i2cIsBusBusy (i2cREG1)== true);
sciSend (scilinREG,22,(无符号字符*)“I2C 总线正忙已清除\r\n”);
/*等待检测到停止*/
i2cIsStopDetected (i2cREG1)== 0);
sciSend (scilinREG,19,(无符号字符*)“检测到 I2C 停止\r\n”);
/*清除停止条件*/
i2cClearSCD (i2cREG1);
sciSend (scilinREG,18,(无符号字符*)“I2C 停止已清除\r\n”);
/*启动下一个区块前的简单代尔莱*/
/*取决于从属设备准备就绪的速度*/
对于(i = 0;i <255;I++)
(TPU = 0;TPU<40;TPU++);
程序将保持在/*中,等待检测到停止*/等待停止位。 我尝试用 OSC 测量帧,但在 SDA 或 SCLK 上未检测到任何位。
非常感谢。
此致,
莱安德罗