• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

用IIC实现与at24c32通信,代码一直卡在检测at24c32部分

电子大拿 2020-10-16 浏览量:673
//检查AT24CXX是否正常
//这里用了24XX的最后一个地址来存储标志字.24C02是25524C512是65535 24C512是65535
//如果用其他24C系列这个地址要修改
//返回1:检测失败
//返回0:检测成功
u8 AT24CXX_Check(void)
{
                u8 temp;
                temp=AT24CXX_ReadOneByte(4095);//避免每次开机都写AT24CXX
                if(temp==0X55)
                                return 0;
                else//排除第一次初始化的情况
                {
                                AT24CXX_WriteOneByte(40950X55);
                                temp=AT24CXX_ReadOneByte(4095);
                                if(temp==0X55)
                                                return 0;
                }
                return 1;
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 看一下IIC线上的时序吧,看芯片有没有响应你的命令。

    IIC要上拉电阻的,电路上有没有上拉

    是硬件IIC还是模拟的,模拟的,看一下信号的延时时间

    • 发布于 2020-10-23
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 这个查找问题,代码部分不容易找出问题线索。

    建议你可以使用示波器,或者逻辑分析仪进行I2C时序上分析,看看实际波形,一下就能找出问题

    • 发布于2020-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 写完一个字节停止10ms后再读试试看,还有就是i2c读写延时也增加一些试试,最好用示波器查看波形
    • 发布于2020-10-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 1.确认下原理图及实际板子焊接情况;地址是?

    2.检查下你的时序

    • 发布于2020-10-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 检查一下这个EEPROM的地址配置,它的地址是可以通过A0 A1两个脚配置的
    • 发布于2020-11-24
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

用IIC实现与at24c32通信,代码一直卡在检测at24c32部分