我在Nucleo144板上使用STM32F767ZI单片机,C++作为编程语言,IAR嵌入式工作台集成开发环境。TXIS位标志状态永远不会被设置(1),即使I2C已启用且TXDR寄存器中没有数据。
我还注意到,尽管主机和从机在相关寄存器中具有相同的从机地址,但没有发生ADDCODE。尽管从代码中可以明显看出,我使用的是轮询方法。ADDCODE寄存器应具有与从机地址相同的地址,这也不会发生。
已验证硬件设置是否正确。
尝试使用I2C1作为主发送器,I2C2作为从接收器,在同一个单片机上进行环回测试。代码部分被卡住,如下所示:
while(!(IsTXISset())) // Code is ge