wofei1314 发表于 2016-1-7 18:02:50

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

如题,STM32F429使用IIC通信的时候,是否需要外加上拉电阻?

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

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

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

lising 发表于 2016-1-7 20:13:42

保险的话还是外置上拉电阻。

zhangdaijin 发表于 2016-1-7 20:14:27

:D:D:D:D加上稳当点

风之力-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回应
页: [1] 2
查看完整版本: STM32F429硬件IIC需要外围上拉电阻吗