在写本文之前我不得不痛批ST的comtex-M3的I2C做得实在是太烂了!就这样一个简简单单的I2C,需要无数多的配置,无数多的寄存器,无数多的标志位,难道ST的目标就是把简单的东西复杂化么?复杂了就难用。另一方面,ST官方给的I2C eeprom例程中while死等的语句比比皆是,本来I2C就做得复杂,还四处布满死等代码,很容易在使用中让系统死机。
目标平台是STM32C8T6+atmel的eeprom,通信总线为串行I2C总线。
调试过程遇到的问题:
1.字节写操作正常,但是字节读函数出错
原因:一厢情愿的认为写eeprom是在七位器件地址后添加写标志,则读eeprom也应该在七位期间地址后添加读标志,而事实上读eeprom也是在七位地址后添加写标志。
2.断续单字节读写正常,但是采用连续的单字节读写出错。