打印

dsPIC33FJ读I2C EEPROM的问题

[复制链接]
788|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

i2cData[0] = (SlaveAddress << 1) | 0;//器件地址+写
i2cData[1] = 0x00;//word addr
DataSz = 2;
StartI2C1();//Send the Start Bit
IdleI2C1();//Wait to complete
Index = 0;
while( DataSz )
{
        MasterWriteI2C1( i2cData[Index++] );
        IdleI2C1();                //Wait to complete
        DataSz--;
        if( I2C1STATbits.ACKSTAT )
                break;
}
RestartI2C1();        //Send the Restart condition
i2c_wait(10);
//wait for this bit to go back to zero
IdleI2C1();        //Wait to complete
MasterWriteI2C1( (SlaveAddress << 1) | 1 ); //transmit read command
IdleI2C1();                //可能死在这里
i2cbyte = MasterReadI2C1();        //读一个字节//可能死在这里
LATDbits.LATD0 = 0;//LED0
StopI2C1();        //Send the Stop condition
IdleI2C1();        //Wait to complete

printf("verify\n");
// verify write and read I2C EEPROM (single byte)
if( i2cbyte != 0xAC )
{
        while(1) //error: verify failed
        {
            if(TX_FLAG == 10)
            {
                TX_FLAG = 0;
                printf("verify failed!\n");
            }
        }
}

使用特权

评论回复
沙发
zhuww| | 2020-9-2 20:20 | 只看该作者

还有什么现象?能再详细描述下吗?

使用特权

评论回复
板凳
liuzaiy|  楼主 | 2020-9-2 20:24 | 只看该作者

使用特权

评论回复
地板
bqyj| | 2020-9-2 20:28 | 只看该作者
看不到读的SCL波形。。。

使用特权

评论回复
5
songqian17| | 2020-9-2 20:31 | 只看该作者
一般IIC都是用IO口模拟的,很少用到硬件IIC,对这方面不是很熟。

使用特权

评论回复
6
llljh| | 2020-9-2 20:34 | 只看该作者
这个应该可以去他们官网找库函数。

使用特权

评论回复
7
xxrs| | 2020-9-2 20:38 | 只看该作者
因为我用的是模拟IIC,所以对这方面的资料不是很清楚

使用特权

评论回复
8
pangb| | 2020-9-2 20:42 | 只看该作者
如果是硬件I2C,没看到你I2C初使化部分。

使用特权

评论回复
9
xxmmi| | 2020-9-2 20:46 | 只看该作者
另外,你要注意:MCHP的GPIO在配置时,如果使用数字输入,一定要把这个GPIO的模拟功能关掉。

使用特权

评论回复
10
kangzj| | 2020-9-2 20:56 | 只看该作者
stm的i2c不是经典笑话么

使用特权

评论回复
11
liuzaiy|  楼主 | 2020-9-2 21:00 | 只看该作者
我说的是STM的资料丰富,轻轻松松就上手,

使用特权

评论回复
12
yufe| | 2020-9-2 21:03 | 只看该作者
AN:
https://www.microchip.com/wwwAppNotes/AppNotes.aspx?appnote=en528266

使用特权

评论回复
13
wenfen| | 2020-9-2 21:12 | 只看该作者
还没有使用MCC么,尝试一下MCC插件吧。图形化配置,快速搭建底层驱动。

使用特权

评论回复
14
bqyj| | 2020-9-2 21:15 | 只看该作者

使用特权

评论回复
15
wenfen| | 2020-9-2 21:20 | 只看该作者

IIC关键点就是时钟时序问题。

使用特权

评论回复
16
liuzaiy|  楼主 | 2020-9-2 21:24 | 只看该作者

唉,还是没有什么结果,算了,多谢大家啦

使用特权

评论回复
17
看别人照片| | 2020-9-3 09:31 | 只看该作者
printf("a = %f\r\n",a); a是浮点型,当是%f编译就会出错,改为%d就能正常编译。

使用特权

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

本版积分规则

735

主题

7546

帖子

2

粉丝