问题描述
大概是这样,使用STM32硬件IIC作为主机通讯,只要不发送错误的从机地址,
通讯一直都是没问题的,因为验证程序的关系,所以在程序中修改了一下从机地址,
这时候就出现了问题,下面直接看图把
使用这段代码修改从机的地址后显示从机地址修改成功,但是后续的通讯使用新地址却失败,笔者反复探究,观察后发现,发送一个错误的从机地址尝试一次通讯,后续是用正确的地址也会失败。
本着好奇心用逻辑分析仪,仿真后发现。情况是后续的通讯从机有回复应答,但是STM32硬件的IIC没有识别到这个应答。
仿真中的寄存器情况是这样的
正常通讯这里的寄存器应该是0x0082
多出来的位是AF位
不知道 这是不是就是传说中的STM32硬件IIC不好用的原因