前言
在使用 STM32 的 I2C 外设时,除了常用的 7 位地址模式,I2C 还支持扩展的 10 位地址模式,用于连接更多从机设备。本文详细记录了学习过程、问题分析和最终的解决方法,希望对需要使用 stm32 IIC从机模式模式的开发者有所帮助。7位地址比较常用,本文着重于10位地址模式。
1、10位地址模式概述
在 10 位地址模式下,主机通信需要发送两帧地址:
第一帧:
高 7 位:11110XXX
(前5位固定,6,7位为从机地址高 2 位)。
第 8 位:R/W 位,表示读或写操作。
第二帧:从机地址低 8 位
2、硬件电路实现
主要用到stm32中的PB6和PB7硬件IIC资源
3、代码实现
主要的配置代码如下:
#define I2C_OWN_ADDRESS10 (0x3ff )
/*I2C½Ó¿Ú*/
#define AS_SLAVE_I2C I2C1
#define AS_SLAVE_I2C_CLK RCC