2953|1

37

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

MXCHIP+Core1081的I2C [复制链接]

本帖最后由 木子鱼 于 2014-12-10 22:48 编辑

   前天测试了下 下V1.19中 I2C 的实验。

也得到了  实验现象:

查看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的一些官方资料:


因此,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接口特性

   





另外摘录一些资料:
I2C 协议
I2C (Inter-Integrated Circuit)协议是由Phiilps公司开发的,由于它具引脚少,硬件实现简单,可扩展性强,不需要如USART、CAN的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。








此帖出自无线连接论坛

最新回复

谢谢分享   详情 回复 发表于 2014-12-11 09:14
点赞 关注
 

回复
举报

2万

帖子

71

TA的资源

管理员

沙发
 
谢谢分享
此帖出自无线连接论坛
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表