打印

求救,PSOC3,I2C模组主设备发送数据问题。

[复制链接]
2269|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuweijie|  楼主 | 2013-7-5 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
暑假留校做项目,刚接触PSOC3 想用PSOC3测量一个I2C接口的三轴加速度计 型号是淘宝上的GY80九轴加速度模块。

我先测试用I2C写入数据

#include <device.h>
#define ADXL345_Addr (0x53u)
void main()
{
uint8 Status;

I2C_Start();
CyGlobalIntEnable;  /* Uncomment this line to enable global interrupts. */
    for(;;)
    {
       Status=I2C_MasterSendStart(ADXL345_Addr,0);//发送地址和写入标记
       if(Status==I2C_MSTR_NO_ERROR)
       {
       Status=I2C_MasterWriteByte(0x32);//写入
       if(Status==I2C_MSTR_NO_ERROR)
       {
            led_Write(1);
       }
       }
      
    }
}

led引脚连的是一个LED灯,按理说写入成功的话,应该就会进入第二个if语句,让LED亮,可是就是不亮,:Q也就是说写入失败,求指点。

泪奔了:'(
沙发
kk5290122| | 2013-7-6 07:44 | 只看该作者
lz确定你的I2C模块配置好了吗??

使用特权

评论回复
板凳
liuweijie|  楼主 | 2013-7-7 18:32 | 只看该作者
kk5290122 发表于 2013-7-6 07:44
lz确定你的I2C模块配置好了吗??

设置对了,我发现问题了,我之前 SCL SDA用的是P1_0和P1_1引脚,后来发现P12_0和P12_1有专门的SCL和SDA标注,然后就改用这个引脚就可以了。

使用特权

评论回复
地板
kk5290122| | 2013-7-7 19:14 | 只看该作者
嗯,就是它里面的有些模块是有指定引脚的,用了相应功能就要分配指定引脚。

使用特权

评论回复
5
jxin| | 2013-7-8 09:43 | 只看该作者
这个可以参照I2C模块的datasheet中有关模块参数的定义:
Pins
This parameter determines which type of pins to use for SDA and SCL signal connections. There are three possible values: Any, I2C0, and I2C1. The default is Any.

Any means general-purpose I/O (GPIO or SIO). If Enable wakeup from Sleep Mode is not required, use Any for SDA and SCL. If Enable wakeup from Sleep Mode is required, use I2C0 or I2C1; using either I2C0 or I2C1 allows you to configure the device for wakeup on I2C address match.

使用特权

评论回复
6
August-creator| | 2014-3-31 18:41 | 只看该作者
您好!估计你把地址配置错了,在I2C_MasterSendStart(address,read/write);中address是器件的7位地址,不是器件的8位读写地址,因为这个函数它根据read/write的标示来自动生成读/写地址,接下来你可以直接读取相关寄存器就可以了!!

使用特权

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

本版积分规则

5

主题

17

帖子

0

粉丝