工具/软件:Code Composer Studio
大家好:
当我在 MSP432红色开发板上运行 I2C 演示程序时遇到问题。
演示程序为:i2c_mast_rw_rw_riped_start-master_code
当我的程序执行以下语句时、它会进入无限等待。
/*发送开始和发送缓冲区的第一个字节。 * MAP_I2C_masterSendMultiByteStart (EUSCI_B0_BASE、TXData[0]);
我通过单步调试发现、当执行以下语句时、我进入死区周期
//轮询发送中断标志和启动条件标志。 while (BITBAND_peri (EUSCI_B_CMSIS (模态)->CTLW0、 EUSCI_B_CTLW0_TXSTT_OFS) ||!BITBAND_peri (EUSCI_B_CMSIS (模态)->IFG、 EUSCI_B_IFG_TXIFG0_OFS));
我查看了演示程序的说明
/********* * MSP432 I2C - EUSCI_B0 I2C 主器件 TX 字节到 MSP432从器件-重复启动 * 说明:此演示通过 I2C 总线连接两个 MSP432。 主 设备*发送到从设备。 这是主代码。 它持续 *传输一组数据、并演示如何实现 I2C *主发送器、发送多个字节、后跟重复起始 *和读取多个字节。 这是从传感器等 I2C 从器件读取寄存器值的常见操作。 写入的 I2C 的*事务如下所示: * ______________________________ *|开始| |开始| | | *| 0x48Addr | 0x04 | 0x48Addr |<10 Byte Read>| Stop | *| W | | R | | | *|_________________ _________________ _________________ _________________________________ _________________ | * * ACLK = n/a、MCLK = HSMCLK = SMCLK = BRCLK =默认 DCO =~3.0MHz * /|\/|\ * MSP432P401 10k 10k MSP432P401 * 从器件 || Master * -------- |||--- * | P1.6/UCB0SDA|<-|--+-|P1.6/UCB0SDA | * | || | | * | || | | * | P1.7/UCB.S.|<!---- >|P1.7/UCB.S. | * | | | | * (小部分 /
说明表明需要两个 MSP432开发板来完成演示、SCL SDA 需要10K 的拉电阻。
我刚刚使用了一个开发板、SCL SDA 处于暂停状态以运行演示程序。 这是否会导致程序出现问题?
如果这不是原因,另一个原因是什么? 因为我用这个参考来与我在芯片上生产的电源芯片通信、但是它没有成功。 我无法使用示波器来捕获任何数据
SCLK SDA 波形。
非常感谢!