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

STM32F429硬件IIC需要外围上拉电阻吗

[复制链接]
wofei1314 提问时间:2016-1-7 18:02 /
如题,STM32F429使用IIC通信的时候,是否需要外加上拉电阻?

看过很多资料,都说是需要上拉电阻,让人郁闷的是,这次设计硬件的时候,偏偏忘记了加,于是乎我进行了测试,

  1. //使能IO引脚时钟
  2. RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
  3. //打开复用功能
  4. GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_I2C1);
  5. GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_I2C1);
  6. //配置GPIO
  7. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;         
  8. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  9. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
  10. GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//GPIO_PuPd_NOPULL;
  11. GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  12. GPIO_Init(GPIOB, &GPIO_InitStructure);
复制代码
发现,使用内置的上拉,单片机可以正常IIC通信,如果使用NOPULL,则IIC工作不正常...

是否可以说,只要使用内部的上拉就可以省掉外部上拉?
有人做过这样的测试不?

收藏 评论10 发布时间:2016-1-7 18:02

举报

10个回答
lisingch 回答时间:2016-1-7 20:13:42
保险的话还是外置上拉电阻。
zhangdaijin 回答时间:2016-1-7 20:14:27
加上稳当点
风之力-395256 回答时间:2016-1-8 08:51:54
F4的我还没有实验,但F1的肯定要外加上拉电阻,F1在配置I2C的AFIO之后会自动变为开漏模式,没有外部上拉将不会响应ACK,导致通信失败。
xmshao 回答时间:2016-1-8 13:14:27
当你复用为I2C后,它就被配置为OD类型。
你可以开启内部上拉,如果合适够用的话。内部上拉电阻大概40K上下。
你也可以外加上拉。
反正上拉是要的。
yanhaijian 回答时间:2016-1-8 14:07:41
设计个上拉电阻,不用可以不焊接。
wofei1314 回答时间:2016-1-9 09:51:10
谢谢各位捧场,这次是纯属疏忽没加,运气好,F429可以设置内部上拉,能工作..
MrJiu 回答时间:2016-1-9 11:29:27
输出可以设置内部上拉??一般是输入才内部上拉吧......
wofei1314 回答时间:2016-1-10 14:03:39
MrJiu 发表于 2016-1-9 11:29
输出可以设置内部上拉??一般是输入才内部上拉吧......

恩,我理解的也和你一样,但是我感觉IIC输出的时候,没用内部上拉,单片机的IO驱动能力足够,输入的时候上拉才有效(外部IIC的输出能力不足,被上拉至高)....
vowping 回答时间:2018-3-23 16:06:39
你好,请问能分享一下你的IIC初始化程序吗,调试中,总是没有ACK回应
wofei1314 回答时间:2018-11-30 10:29:11
vowping 发表于 2018-3-23 16:06
你好,请问能分享一下你的IIC初始化程序吗,调试中,总是没有ACK回应

问题解决了吗?
由于本人从3月开始转行了,上论坛的时间少了,如果没解决的话就再联系我~
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版