请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR6989 你(们)好
I2C 的读写操作正常、直到我使用 UART_A0并通过 TCP 上的 GPRS 调制解调器连接到服务器。 我正在使用 I2C 从 BME280读取数据、并每10秒将数据发送到服务器。 它第一次工作、在行 while (UCB1STAT 和 UCBBUSY)附近读取 I2C 中获得残桩。 如果我对这一行进行注释、它会卡在 while (UCBICTLW0和 UCTXSTT)的旁边。
unsigned int I2C_read (unsigned int SLV_addr、unsigned int reg_addr、unsigned int len、char * arr) { unsigned int i = 0; while (UCB1STAT 和 UCBBUSY); UCB1I2CSA = SLV_addr; UCB1CTLW0 |= UCTR | UCTXSTT; while (UCB1CTLW0和 UCTXSTT); UCB1TXBUF = REG_addr; while (!(UCB1IFG & UCTXIFG0)); UCB1CTLW0 &=~UCTR; UCB1CTLW0 |= UCTXSTT; while (UCB1CTLW0和 UCTXSTT); for (i = 0;i < len;i++) { if (i == len - 1) { UCB1CTLW0 |= UCTXSTP; } while (!(UCB1IFG & UCRXIFG0)); ARR[i]= UCB1RXBUF; } while (UCB1CTLW0和 UCTXSTP); return(i); }
如果我不使用 GPRS、同样的程序也可以正常工作。 请帮助。
此致
Vijay