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