[原创] MXCHIP+Core1081的I2C

木子鱼   2014-12-10 22:45 楼主
前天测试了下 下V1.19中 I2C 的实验。 I2C4.jpg 也得到了 实验现象: QQ拼音截图未命名.jpg 查看MX1081_IO.H 文件 找到: #define USE_I2C1 I2C1 //#define USE_I2C2 I2C2 #if defined (USE_I2C1) #define USE_I2Cx USE_I2C1 #define USE_I2Cx_CLK RCC_APB1Periph_I2C1 #define USE_I2Cx_INIT RCC_APB1PeriphClockCmd #define USE_I2Cx_SDA_PIN GPIO_Pin_7 #define USE_I2Cx_SDA_SOURCE GPIO_PinSource7 #define USE_I2Cx_SDA_PORT GPIOB #define USE_I2Cx_SDA_CLK RCC_AHB1Periph_GPIOB #define USE_I2Cx_SDA_AF GPIO_AF_I2C1 #define USE_I2Cx_SCL_PIN GPIO_Pin_6 #define USE_I2Cx_SCL_SOURCE GPIO_PinSource6 #define USE_I2Cx_SCL_PORT GPIOB #define USE_I2Cx_SCL_CLK RCC_AHB1Periph_GPIOB #define USE_I2Cx_SCL_AF GPIO_AF_I2C1 #elif defined (USE_I2C2) #define USE_I2Cx USE_I2C2 #define USE_I2Cx_CLK RCC_APB1Periph_I2C2 #define USE_I2Cx_INIT RCC_APB1PeriphClockCmd #define USE_I2Cx_SDA_PIN GPIO_Pin_0 #define USE_I2Cx_SDA_SOURCE GPIO_PinSource0 #define USE_I2Cx_SDA_PORT GPIOF #define USE_I2Cx_SDA_CLK RCC_AHB1Periph_GPIOF #define USE_I2Cx_SDA_AF GPIO_AF_I2C2 #define USE_I2Cx_SCL_PIN GPIO_Pin_1 #define USE_I2Cx_SCL_SOURCE GPIO_PinSource1 #define USE_I2Cx_SCL_PORT GPIOF #define USE_I2Cx_SCL_CLK RCC_AHB1Periph_GPIOF #define USE_I2Cx_SCL_AF GPIO_AF_I2C2 #endif 不难发现 Core1081的核芯片 MX1081内部集成了2个I2C 总线接口。 也可参看 Core1081的一些官方资料: I2C1.jpg I2C2.jpg 因此,Core1081提供了2路I2C总线接口供我们使用。只需配置下 #define USE_I2C1 I2C1 #define USE_I2C2 I2C2 就可使用。 简单分析在main.c 程序,主要用到下面的函数: I2C_Configuration(); //对I2C总线接口进行参数配置 I2C_Write(USE_I2Cx,ADDR_24LC02,0,WriteBuffer,sizeof(WriteBuffer) ); // 向EEPROM写数据 I2C_Read(USE_I2Cx,ADDR_24LC02,0,ReadBuffer,sizeof(WriteBuffer) ); // 从EEPROM读数据 这些函数的定义可以在24C02.c文件中找到。 STM32F2系列的芯片 I2C接口特性 1名.jpg 2名.jpg 另外摘录一些资料: I2C 协议 I2C (Inter-Integrated Circuit)协议是由Phiilps公司开发的,由于它具引脚少,硬件实现简单,可扩展性强,不需要如USART、CAN的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。 3名.jpg 4名.jpg 5名.jpg 本帖最后由 木子鱼 于 2014-12-10 22:48 编辑

回复评论 (1)

谢谢分享
加油!在电子行业默默贡献自己的力量!:)
点赞  2014-12-11 09:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复