牛卧堂MCU技术交流

标题: 使用M467的BSP,I2C_EEROM例程,出现了错误。 [打印本页]

作者: 匿名    时间: 2024-2-23 09:38
标题: 使用M467的BSP,I2C_EEROM例程,出现了错误。
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed
Status 0xf8 is NOT processed

请问需要改动什么地方呢


作者: 匿名    时间: 2024-2-23 09:43
地址已经修改为:0XA0;
作者: chrishu    时间: 2024-2-23 11:18
状态0xf8是总线释放状态,一旦收到起始位后,状态就是0XF8,一旦某个动作结束或者出错才会变成其他状态。0XF8不会产生中断。你可以debug看一下,一个动作一个动作跟踪,看是什么是时出现的
作者: chrishu    时间: 2024-2-23 11:23
游客 121.29.69.x 发表于 2024-2-23 09:43
地址已经修改为:0XA0;

你那边设备的地址是多少?
程序里g_u8DeviceAddr变量填的地址是7位的,不包含读写控制位。
在通讯时,比如写时第一个字节发送的是  g_u8DeviceAddr<<1




作者: 匿名    时间: 2024-2-26 10:10
chrishu 发表于 2024-2-23 11:23
你那边设备的地址是多少?
程序里g_u8DeviceAddr变量填的地址是7位的,不包含读写控制位。
在通讯时,比 ...

硬件设计的地址是:0XA0;那么如果按照<<1的写法,那么0X50就无需改动了。但是,这样还是报错。
作者: chrishu    时间: 2024-2-26 13:32
游客 121.29.98.x 发表于 2024-2-26 10:10
硬件设计的地址是:0XA0;那么如果按照

如果不是地址的问题。就按照前面讲的debug去跟踪看一下
作者: 匿名    时间: 2024-2-26 15:14
chrishu 发表于 2024-2-26 13:32
如果不是地址的问题。就按照前面讲的debug去跟踪看一下

        /* Wait I2C Tx Finish */
        u32TimeOutCnt = I2C_TIMEOUT;
        while (g_u8EndFlag == 0)
        {
            if(--u32TimeOutCnt == 0)
            {
                printf("Wait for I2C Tx finish time-out!\n");
                goto lexit;
            }
        }
        g_u8EndFlag = 0;
作者: 匿名    时间: 2024-2-26 15:45
算了 不用硬件搞了 还是软件 最方便一些




欢迎光临 牛卧堂MCU技术交流 (http://www.nuvoton-mcu.com/) Powered by Discuz! X3.2