文章目录
- 前言
- 一、I2C总线初始化
- 二、程序源码与详解
- 1.I2C初始化
- 2.I2C端口初始化及设置IO端口工作模式
- 3.函数I2C_Init
- 4.函数I2C_Cmd
- 5.使能APB1外设时钟
- 6.I2C通信时序图
前言
介绍STM32的I2C总线初始化,给出了代码详解。《i2c.h》文件,由用户编写。定义了SPI2总线的相关接口,使用的是PB组的IO端口:PB12-PB15。
一、I2C总线初始化
《i2c.h》文件,由用户编写。定义了SPI2总线的相关接口,使用的是PB组的IO端口:PB12-PB15。
I2C端口初始化:
RCC:开启GPPIO相关的时钟。
RCC:开启I2C功能对应的时钟。使用I2C总线时,一定要开启总线对应的时钟。
对IO端口的设置:将端口设置为复用的开漏输出。因为所用I2C接口属于复用接口,和IO端口复用,所以要使用复用方式。另外,I2C需要连接两个上拉电阻,所以不需要在单片机内部连接上拉电阻,所以这里设置为开漏输出。开漏模式,就是不连接任何上拉或下拉电阻,端口处在悬空状态。这样,IO端口就不会因为内部的上拉电阻而产生干扰。