废鱼 发表于 2009-10-14 17:14:08

虚拟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的模拟驱动发上来,大家如果有什么问题可以给我留言。

optidrive-15502 发表于 2009-10-22 17:02:07

RE:虚拟I2C使用心得

支持原创
:lol

zhaoyd422 发表于 2009-10-26 18:37:11

RE:虚拟I2C使用心得

问问要是I2C的寄存器不能赋值是什么原因??就是赋值以后寄存器仍为复位值。。谢谢。

zhaoyd422 发表于 2009-10-27 16:14:36

RE:虚拟I2C使用心得

用最新的3.1的固件库也不行吗??STM32怎么回事啊。。

废鱼 发表于 2009-10-27 17:23:27

RE:虚拟I2C使用心得

我没有用3.1的固件。好多人现在都在使用模拟I2C。我附件中的I2C是针对AT24C系列写的。不知道你用的是什么E2。建议使用模拟I2C总线。你先用着,然后再找原因错在哪里。

f_2010 发表于 2010-1-12 07:38:10

回复:虚拟I2C使用心得

 :D
很不错

billa_a 发表于 2010-1-14 14:02:14

RE:虚拟I2C使用心得

先看看,也许用得上

gideon518j 发表于 2010-1-27 10:38:14

回复:虚拟I2C使用心得

怎么下载的是不全的, 没有 I2Cdriver.h 文件

ml8866 发表于 2011-3-8 15:32:50

RE:虚拟I2C使用心得

谢:D

fsjt-114982 发表于 2014-5-13 11:10:21

RE:虚拟I2C使用心得

楼主还在吗?我今天开始弄STM32 模拟IIC,我用的是PB10 PB11.移植了楼主的程序。我写一个字节,然后读一个字节。我写0X55,读出来00。。。。。
我貌似没弄对。。。搞了半天了。。。

fsjt-114982 发表于 2014-5-13 11:11:16

RE:虚拟I2C使用心得

首先感谢楼主分享。

fsjt-114982 发表于 2014-5-13 11:13:48

RE:虚拟I2C使用心得

我今天上午移植了,楼主的程序。可能我哪里弄错了。我是PB10 PB11模拟的。写一个字节数据后读出一直是00

fsjt-114982 发表于 2014-5-13 17:27:23

RE:虚拟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;

_ilikerome_ 发表于 2015-2-20 16:07:47

谢谢,跟着学习了。。

lyjpla 发表于 2020-8-3 15:31:01

谢谢,硬件i2c总是死,试试虚拟的
页: [1]
查看完整版本: 虚拟I2C使用心得