【STM32CubeMx你不知道的那些事】第六章:STM32CubeMx的I2C配置

  大家好这里我给大家来讲解一下STM32CubeMx的I2C配置。什么是I2C呢?他其实也是一种单片机与对外设备的通信方式,这个通信方式都是世界标准的,官方都定义好了,你只需要按照官方定义的特定形式去编写代码就好。我们可以通过两种方式去和外部的带有I2C协议的设备通信,一种方式是用IO口模拟I2C协议去做,还有一种方式就是利用单片机自带的I2C外设接口去做。那么这两种方式哪种更好,毫无疑问使用内部的I2C外设接口会更快,更节约资源。下面我来告诉大家I2C如何配置。

一、准备工作

这里我们要想配置I2C并验证需要的准备工作如下:

1、MDK for ARM(KEIL5)或者IAR FOR ARM(这个是软件必备开发平台) (必须)

2、一块STM32最小系统开发板最好有外接E2PROM(这个是验证软件的平台 E2PROM是I2C总线接口) (必须)

3、这里最好有一本关于STM32学习的书籍(这里就不推荐了,网上有一大把)

二、具体的操作

1、工程建立

1)、在Pinout菜单栏下,I2C的选择与配置。配置如图

【STM32CubeMx你不知道的那些事】第六章:STM32CubeMx的I2C配置_第1张图片

2)、在Configuration菜单栏下,点击Connectivity下的I2C弹出配置界面,配置如图

【STM32CubeMx你不知道的那些事】第六章:STM32CubeMx的I2C配置_第2张图片
这里使用的是默认选项。

3)、生成工程

点击Project菜单栏选择Generate code,工程生成完毕。

2、工程测试

以上说了I2C的配置,现在说怎么使用。我们这里使用的是24C02(E2pPROM)代码验证如下

#define ADDR_24Cxx_Write 0xA0
#define ADDR_24Cxx_Read 0xA1

uint8_t temp=0;
HAL_I2C_Mem_Write(&hi2c1, ADDR_24LCxx_Write, 0, I2C_MEMADD_SIZE_8BIT,0x11,1,0xff);
HAL_I2C_Mem_Read(&hi2c1, ADDR_24LCxx_Read, 0, I2C_MEMADD_SIZE_8BIT,&temp,1,0xff);

这里就可以验证写入到24C02里面的数据是否正确了!

3、总结

这样I2C配置就完成了!~~~

如有什么不懂联系加QQ群:1063618791欢迎大家学习交流!

QQ:1320300083

你可能感兴趣的:(STM32CubeMx)