STM32硬件I2C使用
STM32F103系列硬件I2C使用方法
初始化硬件I2C
通过stm32f103的官方手册以及IO口的定义,我们可以知道I2C1使用的GPIO口分别为:PB6和PB7口。
因为I2C接口是既可以做输出也可以做输入,所以要将GPIO口初始化为开漏复用输出模式.
查官方数据手册也可以知道:
GPIO口的初始化代码为:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE);//开启I2C时钟总线
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//开启GPIOB的时钟总线
GPIO_InitTypeDef GPIO_Initstructure;
GPIO_Initstructure.GPIO_Mode=GPIO_Mode_AF_OD;//开漏复用输出模式
GPIO_Initstructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;//硬件I2C1的接口为PB6和PB7
GPIO_Initstructure.GPIO_Speed = GPIO_Speed_50MHz;//接口速度
GPIO_Init(GPIOB,&GPIO_Initstructure);//使用结构体初始化GPIO口
完成GPIO口的初始化之后开始初始化I2C1