你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

虚拟I2C使用心得

[复制链接]
废鱼 提问时间:2009-10-14 17:14 /
都说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的模拟驱动发上来,大家如果有什么问题可以给我留言。

I2C_BUS.rar

下载

1.29 KB, 下载次数: 209, 下载积分: ST金币 -1

I2C.rar

下载

1023 Bytes, 下载次数: 204, 下载积分: ST金币 -1

收藏 2 评论14 发布时间:2009-10-14 17:14

举报

14个回答
optidrive-15502 回答时间:2009-10-22 17:02:07

RE:虚拟I2C使用心得

支持原创
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使用心得

 
很不错
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使用心得

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总是死,试试虚拟的

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版