都说STM32自带的I2C库不好使用,所以很多人都放弃了原库文件,而使用虚拟I2C总线的方式。在使用I2C时,我理解错误以下几点: 1、I2C写数据时,需要检测E2回复的ACK,而我看资料,以为是要发送ACK,这里使我写数据总是失败; 2、START、STOP、ACK等中SDA和SCL的时序问题,也就是延时的问题(我的主频是72M); 3、E2不同,地址不同,要注意硬件地址、数据地址。有的是8位地址,有的是16位地址; 4、AT24CXX,读取时,R\W为高。写时,R\W为低; 我把I2C的模拟驱动发上来,大家如果有什么问题可以给我留言。 |
RE:虚拟I2C使用心得
RE:虚拟I2C使用心得
RE:虚拟I2C使用心得
RE:虚拟I2C使用心得
回复:虚拟I2C使用心得
很不错
RE:虚拟I2C使用心得
回复:虚拟I2C使用心得
RE:虚拟I2C使用心得
RE:虚拟I2C使用心得
我貌似没弄对。。。搞了半天了。。。
RE:虚拟I2C使用心得
RE:虚拟I2C使用心得
RE:虚拟I2C使用心得
{
u8 ch;
if(I2C_Start()==FALSE)
return 0;
I2C_SendByte(0xa0&0xfe);
I2C_SendByte(addr);
if(I2C_Start()==FALSE)
return 0;
I2C_SendByte(0xa0|0x01);//20140513-程序执行完。SDA以后一直都是低电平。
ch=I2C_ReceiveByte(TRUE);
I2C_Stop();
return ch;