您好!
我正在使用 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; }