打印
[技术问答]

新唐NANO120中I2C驱动寄存器写入不了

[复制链接]
1016|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 的地址有没有弄错呢

使用特权

评论回复
5
gejigeji521| | 2016-4-9 08:06 | 只看该作者
把整个程序发来大家才好帮你判断

使用特权

评论回复
6
捉虫天师| | 2016-4-9 23:25 | 只看该作者
24C02是非常好用的简单的IIC存储器。

使用特权

评论回复
7
gejigeji521| | 2016-4-11 00:18 | 只看该作者
现在能否写入了,是不是代码的问题呢

使用特权

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

本版积分规则

4

主题

20

帖子

1

粉丝