你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F030 AT24C02通信问题

[复制链接]
baotun050320 提问时间:2020-10-24 13:06 /
硬件和软件都试过了,串口出来的数据都是一样,有问题.用的代码都是网上的



// 连续写N个字节
bool I2C2_Write_NByte(uint8_t SlaveAddress, uint8_t REG_Address, uint8_t* buf, uint16_t len)
{
    uint16_t i;
    if(!I2C2_Start())return false;
    I2C2_Send_Byte(SlaveAddress);  //发送设备地址+写信号
    if(!I2C2_Wait_Ack()){I2C2_Stop(); return false;}
    I2C2_Send_Byte(REG_Address);   
    if(!I2C2_Wait_Ack()){I2C2_Stop(); return false;}
    for(i=0; i<len; i++)
    {
        I2C2_Send_Byte(buf[i]);
    if(i<len-1)
    {
            if(!I2C2_Wait_Ack()){I2C2_Stop(); return false;}
    }
    }
    I2C2_Stop();
    return true;
}

// 连续读N个字节
bool I2C2_Read_NByte(uint8_t SlaveAddress, uint8_t REG_Address, uint8_t* buf, uint16_t len)
{
    uint16_t i;
    if(!I2C2_Start())return false;
    I2C2_Send_Byte(SlaveAddress);  //发送设备地址+写信号
    if(!I2C2_Wait_Ack()){I2C2_Stop(); return false;}
    I2C2_Send_Byte(REG_Address);   
    if(!I2C2_Wait_Ack()){I2C2_Stop(); return false;}
    if(!I2C2_Start())return false;
    I2C2_Send_Byte(SlaveAddress | 1); // 读操作
    if(!I2C2_Wait_Ack()){I2C2_Stop(); return false;}
    for(i=0; i<len; i++)
    {
        buf[i] = I2C2_Read_Byte();
    if(i<len-1)
    {
        I2C2_Ack();
    }
    }
    I2C2_NAck();
    I2C2_Stop();
    return true;
}


Usartdata.PNG
收藏 评论7 发布时间:2020-10-24 13:06

举报

7个回答
小歆-2051663 回答时间:2020-10-26 09:37:00
示波器看一下波形吧,应该是你软件模拟I2C的问题。
hujjj 回答时间:2020-10-26 09:46:03
建议用逻辑分析仪抓取SDA和SCL的时序,看看是否符合I2C协议的要求。
dataozi 回答时间:2020-10-26 11:29:18
看一下 SCL和SDA的波形
edmundlee 回答时间:2020-10-26 11:29:26
你写是用page write的吧
你先了解一下page size
然后写完一个page要等10ms, 才能再写
dataozi 回答时间:2020-10-26 11:29:52
我有一个AT24C64的 你要吗?
ts2000 回答时间:2020-10-26 11:45:11
24C02的速度比较慢,时序上要比较大的延时时间。
butterflyspring 回答时间:2020-11-4 16:46:28
最直接的方法是用示波器或逻辑分析仪看看波形,这样能确定是不是真正写进去了还是串口读出的数据是否是正常的。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版