[技术问答] 新唐NANO120中I2C驱动寄存器写入不了

[复制链接]
1201|6
 楼主| lixiang656 发表于 2016-4-7 10:55 | 显示全部楼层 |阅读模式
在写NANO120驱动24C02的程序中,对I2C的初始化如下:
void I2C0_Init()
{
        //使能I2C0引脚       
    SYS->PA_L_MFP &= ~(SYS_PA_H_MFP_PA8_MFP_Msk | SYS_PA_H_MFP_PA9_MFP_Msk);
    SYS->PA_L_MFP |= (SYS_PA_H_MFP_PA9_MFP_I2C0_SCL | SYS_PA_H_MFP_PA8_MFP_I2C0_SDA);

        //使能I2C0时钟
         CLK_EnableModuleClock(I2C0_MODULE);

        //使能I2C
         I2C0->CON |=I2C_CON_IPEN_Msk;

         /* Enable I2C0 interrupt */
    I2C_EnableInt(I2C0);
    NVIC_EnableIRQ(I2C0_IRQn);
         DEBUGMSG("I2C0 initial over!\n");
}

然后在读写操作24C02中,对I2C的控制寄存器进行写操作,发现无法写入,以下是写入寄存器的代码:
I2C_SET_CONTROL_REG(I2C0,I2C_STA);
I2C_SET_CONTROL_REG(I2C0,I2C_SI);

请问如何解决?求大神!
玛尼玛尼哄 发表于 2016-4-7 17:00 | 显示全部楼层
应该需要先打开该外设才可以。
gejigeji521 发表于 2016-4-7 21:58 | 显示全部楼层
你没有打开这个功能吧,记得有个OPEN函数的。
capturesthe 发表于 2016-4-8 22:38 | 显示全部楼层
slave 的地址有没有弄错呢
gejigeji521 发表于 2016-4-9 08:06 | 显示全部楼层
把整个程序发来大家才好帮你判断
捉虫天师 发表于 2016-4-9 23:25 | 显示全部楼层
24C02是非常好用的简单的IIC存储器。
gejigeji521 发表于 2016-4-11 00:18 | 显示全部楼层
现在能否写入了,是不是代码的问题呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部