初级会员

- 积分
- 178
- 金钱
- 178
- 注册时间
- 2015-8-29
- 在线时间
- 17 小时
|
1金钱
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//RCC->APB2ENR|=1<<4;//先使能外设IO PORTC时钟
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_11;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC, &GPIO_InitStructure);
IIC_SCL=1;
IIC_SDA=1;
}
#define SDA_IN() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
#define SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}
IIC实验中,他这个SDA_IN();到底是上拉输入还是下拉输入,为什么要设置成上下拉输入,可不可以改成浮空输入
|
最佳答案
查看完整内容[请看2#楼]
IIC通信的两根线是需要上的,STM32把他配置成上拉输入是防止外部模块并没有对其进行上拉,如果模块电路中已经有上拉,那么可以设置成浮空输入模式。
|