找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

BSP包,I2C_EEROM出现:I2C_MasterTx 0xf8 is NOT processed

[复制链接]
跳转到指定楼层
楼主
匿名  发表于 2025-1-10 13:21:55 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请问出现这个问题,是什么原因引起的?
在测试赛普拉斯和富士通的EEROMX64的IIC-EEROM出现了这个情况;
但是写入和回读的数据,也是争取的;这种情况是什么引起的?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 顶 踩
回复

使用道具

沙发
匿名  发表于 2025-1-10 13:23:06
提升出现在了:
/*---------------------------------------------------------------------------------------------------------*/
/*  I2C Tx Callback Function                                                                               */
/*---------------------------------------------------------------------------------------------------------*/
void I2C_MasterTx(uint32_t u32Status)
{
    if (u32Status == 0x08)                      /* START has been transmitted */
    {
        I2C_SET_DATA(I2C2, g_u8DeviceAddr << 1);  /* Write SLA+W to Register I2CDAT */
        I2C_SET_CONTROL_REG(I2C2, I2C_CTL_SI);
    }
    else if (u32Status == 0x18)                 /* SLA+W has been transmitted and ACK has been received */
    {
        I2C_SET_DATA(I2C2, g_au8TxData[g_u8DataLen++]);
        I2C_SET_CONTROL_REG(I2C2, I2C_CTL_SI);
    }
    else if (u32Status == 0x20)                 /* SLA+W has been transmitted and NACK has been received */
    {
        I2C_SET_CONTROL_REG(I2C2, I2C_CTL_STA | I2C_CTL_STO | I2C_CTL_SI);
    }
    else if (u32Status == 0x28)                 /* DATA has been transmitted and ACK has been received */
    {
        if (g_u8DataLen != 3)
        {
            I2C_SET_DATA(I2C2, g_au8TxData[g_u8DataLen++]);
            I2C_SET_CONTROL_REG(I2C2, I2C_CTL_SI);
        }
        else
        {
            I2C_SET_CONTROL_REG(I2C2, I2C_CTL_STO | I2C_CTL_SI);
            g_u8EndFlag = 1;
        }
    }
    else
    {
        /* TO DO */
        printf("I2C_MasterTx 0x%x is NOT processed\n", u32Status);
    }
}

回复 支持 反对

使用道具

板凳
chrishu 发表于 2025-1-10 15:26:43 | 只看该作者
请问你用的哪一颗芯片。0XF8在清除SI后就会产生,这个状态不会产生中断。




回复 支持 反对

使用道具 举报

地板
匿名  发表于 2025-1-10 16:17:58
chrishu 发表于 2025-1-10 15:26
请问你用的哪一颗芯片。0XF8在清除SI后就会产生,这个状态不会产生中断。

你好,我使用的是M483KIDAE,使用的铁电EEROM的型号是:MB85RC64TAPNF

谢谢!
回复 支持 反对

使用道具

5#
chrishu 发表于 2025-1-13 11:11:02 | 只看该作者
请问I2C_MasterTx函数是在主函数里调用的,还是在中断里调用的。
0xF8是不会产生中断的。
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU