I2C(集成电路间,内部集成电路)是由Philips Philip开发的串行总线。这是两个串行总线,由数据电缆(SDA)组成(SDA)和时钟线(SDL)。您可以连接多个I2C设备在I2C总线上,每个设备都具有唯一的地址识别。在同一时间,只有一个主设备,而其他设备是从设备。MCU通常用作主设备控制和外围设备。
STM32的I2C外围设备可用作通信的主机和平板,支持100kbit/s和400kbit/s,支持7和10-1位设备地址,DMA数据传输和数据验证功能。ITSI2C外围也支持SMBUS2.0协议。SMBUS协议类似于I2C,该协议主要用于笔记本电脑的电池管理。
STM32芯片具有多个I2C外围设备。他们的I2C通信信号导致不同的GPIO引脚,并且必须在使用时配置这些指定的引脚。
开发委员会中的EEPROM芯片模型:AT24C02。AT24C系列是Atmel在美国发射的串行COMS EEPROM。芯片模型的两个数字代表芯片容量,例如ATC24C02为2K.A0,A1和A2,A2和A2在引脚图中是设备地址引脚,GND是地面,VCC是正电源,WP是保护性保护,SCL是串行时钟线,SDA是串行数据电缆。
EEPROM芯片中的WP引脚具有保护函数。当引脚级别高时,禁止编写数据。当PIN较低时,可以编写数据。我们直接接地并且不使用保护功能。AT24CXX设备的地址如下,前四位数字是固定的,并且A2?A0由管脚级别确定。AT24CXXEEPROM板模块默认为地面。A2?a0是,最后一个r/w表示读写操作。,这意味着写作方向,因此7位地址是I2C设备的“写作地址”;当r/w位是读取的方向,再加上7位地址时,该值通常称为“读取地址”。
1.打开STM32Cubemx软件,然后单击“新项目”
2.选择MCU和安装
3.配置Clock RCC设置,选择HSE(外部高速时钟)为Crystal/Cramic谐振器(Crystal/Ceramics Resonant)选择时钟配置,并且配置系统时钟SYSCLK为72MHz,以修改HCLK的值。
4.配置调试模式非常重要,否则将导致第一个录制程序遵循调试器的系统设置,选择调试作为串行线
选择中间的设置,然后为默认设置选择内部集成电路i2c。仅需注意,i2c是标准模式,i2c传输速率(I2C时钟速度)为。
输入项目名称的IDE开发环境和项目路径MDK-RM V5,以生成每个外围的独立文件。所有初始化代码均在MAIN中生成。C检查:初始化代码在相应的外围文件中生成。例如,GPIO初始化代码是在GPIO.C.C.Click生成代码中生成代码中生成的。
添加一个地址,读取地址,读取缓存区域,并读取Main.C头部中的高速缓存区域。
首先初始化程序中的数据缓存。然后调用该函数将数据写入EEPROM。确定的写作操作是否根据功能返回值正确。内存写作功能描述可以在I2C中找到。
调用该函数以读取仅以EEPROM编写的数据。功能描述如下。
串行端口打印功能视图STM32Cubemx学习笔记(6) - USART串行端口使用
STM32Cubemx使用HAL库生成的代码:
使用STM32标准库的代码:
应在和平之间添加用户代码,否则下次使用STM32Cubemx重新加工代码时,它将被删除。
?Leung在2021年1月26日写信
?参考:STM32Cubemx系列教程9:内部集成电路(I2C)
【STM32CUBE_13】使用硬件I2C读写EEPROM(AT24C02)
原始:https://juejin.cn/post/7100502480986832926