我想发送一些对象数据,二进制,跨一些单片机。我把它当作一个跨平台的问题。我想如何实施,就像:
//mcu A
//someObj declared and initialized
Send((uint_8_t*)&someObj,sizeof(someObj));
//mcu B
SomeClass someObj;
Read((uint_8_t*)&someObj,sizeof(someObj));
在C/C++中是否有任何保证这样的事情是可能的?
我在Nucleo144板上使用STM32F767ZI单片机,C++作为编程语言,IAR嵌入式工作台集成开发环境。TXIS位标志状态永远不会被设置(1),即使I2C已启用且TXDR寄存器中没有数据。
我还注意到,尽管主机和从机在相关寄存器中具有相同的从机地址,但没有发生ADDCODE。尽管从代码中可以明显看出,我使用的是轮询方法。ADDCODE寄存器应具有与从机地址相同的地址,这也不会发生。
已验证硬件设置是否正确。
尝试使用I2C1作为主发送器,I2C2作为从接收器,在同一个单片机上进行环回测试。代码部分被卡住,如下所示:
while(!(IsTXISset())) // Code is ge