基于标准库StdPeriph_Lib_V3.6.0进行硬件I2C主机调试,通过对从机的寄存器进行读写操作,已通过测试
I2C初始化
GPIO_InitTypeDef GPIO_InitStruct;
I2C_InitTypeDef I2C_InitStructure;
//时钟配置
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_OD; //复用开漏
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz; //输出速率随意
GPIO_Init(GPIOB,&GPIO_InitStruct);
I2C_InitStructure.I2C_Mode = I2C_Mode_I2C; //I2C模式
I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2; //占空比
I2C_InitStructure.I2C_OwnAddress1 = 0; //本机地址,主模式下无意义
I2C_InitStructure.I2C_Ack = I2C_Ack_Enable