打印
[Cortex-M0技术交流]

RyanHsiung 之 I2C从机经验

[复制链接]
2845|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 Ryanhsiung 于 2012-1-10 08:42 编辑

1、要打开IO相应外设功能,若不打开肯定是不能正常工作
 DrvGPIO_InitFunction(E_FUNC_I2C0);        
2、设置地址
    这个要特别注意了,新唐所代表的地址是不含W//R位的。
    例如正常EEPROM中地址为0XA0,我们要设置的地址要设置0X50
DrvI2C_SetAddress( I2C_PORT0,0,Device_Addr>>1,0 );                                            // 设置I2C 地址1,并将广播命令关闭

3、设置为从机模式
DrvI2C_Ctrl(I2C_PORT0, 0, 0, 0, 1);                                                                                                
4、打开I2C功能模块
 DrvI2C_EnableInt(I2C_PORT0);                                                                                                                                // 使能I2C_PORT        
5、使能中断
 DrvI2C_InstallCallback(I2C_PORT0, I2CFUNC, S_I2C_Callback_Slave);

相关帖子

沙发
kyzb001| | 2012-1-10 09:25 | 只看该作者
恭喜,恭喜!!!

使用特权

评论回复
板凳
kyzb001| | 2012-1-10 09:26 | 只看该作者
人都回去过年了?  感觉这几天好冷清啊!

使用特权

评论回复
地板
Ryanhsiung|  楼主 | 2012-1-10 11:55 | 只看该作者
恭喜,恭喜!!!
kyzb001 发表于 2012-1-10 09:25

先前就写对了,新唐IIC从机地址指的是高7位
   后来来120的板子跑一下官方的例程才发现

使用特权

评论回复
5
hotpower| | 2012-1-10 23:52 | 只看该作者
先前就写对了,新唐IIC从机地址指的是高7位
   后来来120的板子跑一下官方的例程才发现
Ryanhsiung 发表于 2012-1-10 11:55


应该是高7位。这是7位模式。新唐不支持10位模式

使用特权

评论回复
6
Ryanhsiung|  楼主 | 2012-1-11 09:03 | 只看该作者
应该是高7位。这是7位模式。新唐不支持10位模式
hotpower 发表于 2012-1-10 23:52


就是因为这个地址卡了我好多天,基本I2C地址都是说8位(会将读写位含在里面)。
  最后120的开发板 加载官方例程 对比才发现这个问题!!

使用特权

评论回复
7
hotpower| | 2012-1-11 10:22 | 只看该作者
卡了最好,终身难忘。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:嵌入式技术专家
简介:道阻且长,行则将至!

64

主题

4654

帖子

14

粉丝