I2C(芯片间)总线接口连接微控制器和串行I2C总线。它提供多主机功能,控制所有I2C总线特定的时序、协议、仲裁和定时。支持标准和快速两种模式,stm32的I2C可以使用DMA方式操作。
这里是用STM32与EEPROM的通讯,具体步骤如下:
1、配置I/O端口,确定并配置I2C的模式,使能GPIO和I2C时钟。
/*
* 函数名: I2C_GPIO_Config
* 描述 : 配置I2C1的I/O
* 输入 : 无
* 输出 : 无
*/
static void I2C_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* 使能与I2C1有关的时钟 */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);
/* PB6-I2C1_SCL、PB7-I2C1_SDA*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; // 开漏输出
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
2、写: