OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10029|回复: 9

F429 读写I2C eeprom M24C64 一直读不了

[复制链接]

15

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-3-17
在线时间
25 小时
发表于 2017-6-8 19:14:55 | 显示全部楼层 |阅读模式
1金钱
在STM32F429的开发板上,把原子的ATC02 换上M24C64.
在24xx.h 修改
[mw_shl_code=cpp,true]//#define EE_TYPE AT24C02
#define EE_TYPE AT24C64       
[/mw_shl_code]
在main.c里执行
[mw_shl_code=applescript,true]    while(1)
    {
        if(AT24CXX_Check())
        {
            LCD_ShowString(30,150,200,16,16,"24C02 Check Failed!");
        }
        else{
            LCD_ShowString(30,170,200,16,16,"24C02 ok!");
            
        }
        delay_ms(1000);
    }    [/mw_shl_code]


请大家看下.写进去.老是读不到.

总时序

总时序

图1

图1

图2

图2

图3

图3

最佳答案

查看完整内容[请看2#楼]

[mw_shl_code=cpp,true]//IO方向设置 #define SDA_IN() {GPIOH->MODER&=~(3
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-3-17
在线时间
25 小时
 楼主| 发表于 2017-6-8 19:14:56 | 显示全部楼层
[mw_shl_code=cpp,true]//IO方向设置
#define SDA_IN()  {GPIOH->MODER&=~(3<<(5*2));GPIOH->MODER|=0<<5*2;}        //PH5输入模式
//#define SDA_OUT() {GPIOH->MODER&=~(3<<(5*2));GPIOH->MODER|=1<<5*2;} //PH5输出模式
#define SDA_OUT() {GPIOH->MODER&=~(3<<(5*2));GPIOH->MODER|=1<<5*2;\
                                                                                GPIOH->OTYPER&=~(1<<5);GPIOH->OTYPER|=1<<5;} //PH5输出模式
[/mw_shl_code]

折腾了一天.添加那一行代码才可以. 不同的芯片质量不同.估计我那个都是盗版的
回复

使用道具 举报

15

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-3-17
在线时间
25 小时
 楼主| 发表于 2017-6-8 19:17:56 | 显示全部楼层
地址已经改为00.
u8 AT24CXX_Check(void)
{
        u8 temp;
        temp=AT24CXX_ReadOneByte(0);//避免每次开机都写AT24CXX                          
        if(temp==0X55)return 0;                  
        else//排除第一次初始化的情况
        {
                AT24CXX_WriteOneByte(0,0X55);
            temp=AT24CXX_ReadOneByte(0);          
                if(temp==0X55)return 0;
        }
        return 1;                                                                                          
}
回复

使用道具 举报

15

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2017-3-17
在线时间
25 小时
 楼主| 发表于 2017-6-9 00:40:55 | 显示全部楼层
拒绝再次折腾. 希望碰到类此问题的人能减少开发时间.就是设置输出模式的时候,要设置开漏极输出. 可能跟我这颗 M24C64 芯片内部有关.内部拉不下来也没用
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-6-9 21:25:07 | 显示全部楼层
cbxxx 发表于 2017-6-9 00:40
拒绝再次折腾. 希望碰到类此问题的人能减少开发时间.就是设置输出模式的时候,要设置开漏极输出. 可能跟我这 ...

谢谢分享
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2017-8-16
在线时间
1 小时
发表于 2017-8-16 10:46:11 | 显示全部楼层
cbxxx 发表于 2017-6-8 19:17
地址已经改为00.
u8 AT24CXX_Check(void)
{

64的地址要改成00吗
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2018-2-27
在线时间
7 小时
发表于 2018-3-1 18:20:17 | 显示全部楼层
谢谢分享
回复

使用道具 举报

19

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
184
金钱
184
注册时间
2012-11-12
在线时间
36 小时
发表于 2018-5-8 19:41:18 | 显示全部楼层
我遇到了问题, M24C04 器件地址可以成功写入,但是字地址 写入失败,M24C04 和 AT24C02/04 有什么区别吗, 我在AT24C02 读写成功,在M24C04 就不行,能否提供下M24CXX相关的I2C 这块样例看看
回复

使用道具 举报

15

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
117
金钱
117
注册时间
2020-3-12
在线时间
24 小时
发表于 2022-10-4 23:12:21 | 显示全部楼层
cbxxx 发表于 2017-6-8 19:14
[mw_shl_code=cpp,true]//IO方向设置
#define SDA_IN()  {GPIOH->MODER&=~(3

这么多年的帖子解决了我的问题,非常感谢
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2024-5-28
在线时间
9 小时
发表于 2025-2-11 14:31:41 | 显示全部楼层
liyancao001 发表于 2022-10-4 23:12
这么多年的帖子解决了我的问题,非常感谢

+1,非常感谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-22 02:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表