我在Nucleo144板上使用STM32F767ZI单片机,C++作为编程语言,IAR嵌入式工作台集成开发环境。TXIS位标志状态永远不会被设置(1),即使I2C已启用且TXDR寄存器中没有数据。
我还注意到,尽管主机和从机在相关寄存器中具有相同的从机地址,但没有发生ADDCODE。尽管从代码中可以明显看出,我使用的是轮询方法。ADDCODE寄存器应具有与从机地址相同的地址,这也不会发生。
已验证硬件设置是否正确。
尝试使用I2C1作为主发送器,I2C2作为从接收器,在同一个单片机上进行环回测试。代码部分被卡住,如下所示:
while(!(IsTXISset())) // Code is ge
我是嵌入式领域的初学者。我用ARM和PIC单片机做过几个工程项目。现在我面临着一个问题,如何在非易失性存储器或外部存储器中存储一些详细信息(如姓名和利率)?有人能帮我解决这个问题吗?我应该在哪里得到这种存储的例子?现在我正在使用keil u vision 4进行编程,但printf在其中不起作用?之前我用的是keil u vision3,printf就是这么做的?
在STM32单片机上编程时,发现利用printf()函数实现二进制码的数据传输存在一定的困难。找到了可能是错误的解决方案,但对我有效:
uint8_t bin = 0xAA;
printf("Converting number to binary 0b%d%d%d%d%d%d%d%d\n",bin>>7&1,bin>>6&1,bin>>5&1,bin>>4&1,bin>>3&1,bin>>2&1,bin>>1&1,bin&1);
这