初级会员

- 积分
- 176
- 金钱
- 176
- 注册时间
- 2017-7-1
- 在线时间
- 46 小时
|
1金钱
在原子哥的IIC试验中,IIC初始化只初始化了引脚
//初始化IIC
void IIC_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE ); //使能GPIOB时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
GPIO_SetBits(GPIOB,GPIO_Pin_6|GPIO_Pin_7); //PB6,PB7 输出高
}
但我看别人的代码中还有IIC的一段初始化
void I2C_Configuration(void)
{
I2C_InitTypeDef I2C_InitStructure;
I2C_DeInit(I2C1); //将IIC寄存器设置为缺省值
I2C_SoftwareResetCmd(I2C1,ENABLE);//使能软件复位
I2C_SoftwareResetCmd(I2C1,DISABLE);//失能IIC软件复位
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; //将通道设置为IIC模式
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; //IIC快速模式Tlow/Thigh=2
I2C_InitStructure.I2C_OwnAddress1 = 0x30; //设置第一个自身地址为0X30
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable; //使能应答
I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit; //应答7位地址
I2C_InitStructure.I2C_ClockSpeed = 100000; // 设置IIC 时钟频率
I2C_Init(I2C1, &I2C_InitStructure); //初始化IIC1寄存器
I2C_AcknowledgeConfig(I2C1, ENABLE); //使能IIC1的应答功能
I2C_Cmd(I2C1, ENABLE);//使能IIC1
}
不知道这一段IIC的配置是否必须,这段代码功能是什么?
|
|