您好!
我正在使用 Arduino (从站)和 Launchpad Rm57L (主站)构建项目、以从 Arduino 获取数据并将其发送到 HTTP 服务器。
我无法从 I2C.I 没有分析仪、因为我为 i2c 监听器构建了 Arduino、i2c 线路上没有数据。
我将 RM57的示例代码和 i2c 线路的2个4.7K 上拉电阻连接到 J1接头9和10端口。i2c 线路。
这个 github.com/.../i2c-sniffer-100kBaud-Arduino-Mega for Arduino.Rm57代码卡在其中
while (i2cIsBusy (i2cREG1)=true);
无限循环。
int main (void)
{
/*用户代码开始(3)*/
int repeat = 0;int delay =0;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 主机传输功能 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*根据 GUI 进行 I2C 初始
化*模式=主器件-发送
器*波特率= 100KHz
*计数= 10
*位计数= 8位
*/
i2cInit();
//配置从器件与之通信的地址*/
i2cSetSlaveADD (i2cREG1、Slave_Address);
//*设置发送器方向*/
*注意: 可选-在 Init 中完成*/
i2cSetDirection (i2cREG1、I2C_transmitter);
for (Repeat = 0;Repeat < 2;Repe++)
{
//配置数据计数*/
//*注意:可选-在 Init 中完成,除非用户想要更改*/
i2cSetCount (i2cREG1、data_master
、i2cI2C);*设置为 SetCount
/*设置已编程计数后的停止*/
i2cSetStop (i2cREG1);
/*发送开始条件*/
i2cSetStart (i2cREG1);
/*发送 DATA_COUNT 数据的轮询模式数*/
i2cSend (i2cREG1、DATA_COUNT、TX_Data_Master);
/*等待直到
检测到 i2cBus0 (i2cBus1);/i2cBus= 0 (i2cBus0)(i2cBus= i2cBus0)*(iCbus= 0)(i2cBusy)(i2cBus/iCbus= 0)(i2cBus (i2cBus/iCbus= 0)
/*清除停止条件*/
i2cClearSCD(i2cREG1);
/*在开始下一个块之前,简单的 Dealya */
*取决于从器件准备就绪的速度*/
for (delay=0;delay<1000000;delay++);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// 主机接收功能 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*配置从机的地址以与*/
i2cSetSlaveAdd (i2cREG1、Slave_Address)通信;
//将方向设置为接收器*/
i2cSetDirection (i2cREG1、I2C_receiver);
for (Repe= 0;Repeat < 2;Repe++)
{
//
//* Configure Data count:////*注意:i2cSetCount:可选、i2cIncount、i2cData (不希望在用户设置
)中更改)
/*将模式设置为主设备*/
i2cSetMode (i2cREG1、I2C_MASTER);
//设置已编程计数后的停止*/
i2cSetStop (i2cREG1);
//发送开始条件*/
i2cSetStart (i2cREG1);
// Transmit data_count 轮询模式中的数据数*/ i2cRX_bus_try
(i2cBus_try);* i2cBus/i2r1 (i2cRX_bus_try)=忙等待(i2cbus_try);// i2cbus_try (i2crefs (i2cr1)*(i2c
/*等待直到检测到停止*/
while (i2cIsStopDetected (i2cREG1)=0);
/*清除停止条件*/
i2cClearSCD (i2cREG1);
/*在启动下一个块之前简单的 Dealya
*/*取决于从器件准备的速度*/ for (delay=0;
nop);nasm (nop);nasm ("100op)"
;/asm (nop);nop (nasm)"(nop (nop);/nop)");
/*用户代码结束*/
返回0;
}

