虚拟I2C使用心得
都说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使用心得
支持原创:lol
RE:虚拟I2C使用心得
问问要是I2C的寄存器不能赋值是什么原因??就是赋值以后寄存器仍为复位值。。谢谢。RE:虚拟I2C使用心得
用最新的3.1的固件库也不行吗??STM32怎么回事啊。。RE:虚拟I2C使用心得
我没有用3.1的固件。好多人现在都在使用模拟I2C。我附件中的I2C是针对AT24C系列写的。不知道你用的是什么E2。建议使用模拟I2C总线。你先用着,然后再找原因错在哪里。回复:虚拟I2C使用心得
:D很不错
RE:虚拟I2C使用心得
先看看,也许用得上回复:虚拟I2C使用心得
怎么下载的是不全的, 没有 I2Cdriver.h 文件RE:虚拟I2C使用心得
谢:DRE:虚拟I2C使用心得
楼主还在吗?我今天开始弄STM32 模拟IIC,我用的是PB10 PB11.移植了楼主的程序。我写一个字节,然后读一个字节。我写0X55,读出来00。。。。。我貌似没弄对。。。搞了半天了。。。
RE:虚拟I2C使用心得
首先感谢楼主分享。RE:虚拟I2C使用心得
我今天上午移植了,楼主的程序。可能我哪里弄错了。我是PB10 PB11模拟的。写一个字节数据后读出一直是00RE:虚拟I2C使用心得
u8 EE_ByteRead(u8 addr){
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; 谢谢,跟着学习了。。 谢谢,硬件i2c总是死,试试虚拟的
页:
[1]