OpenEdv-开源电子网

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

关于EEPROM 24c04的驱动问题

[复制链接]

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-11-3
在线时间
14 小时
发表于 2016-11-4 16:11:15 | 显示全部楼层 |阅读模式
2金钱
我用的一个最小系统板,芯片是C8T6的 ,这块板子上用的是EEPROM是24c04,我用的硬件仿真,为什么我用24c02的驱动程序驱动不起来?不是说小容量改大容量没有问题吗,怎样才能驱动24c04?

I2C_24C02.zip

2.61 MB, 下载次数: 62

这是我的驱动

最佳答案

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

现在的问题是通信存在问题,硬件IIC比较复杂,而且稳定性也不是太好建议您像原子哥那样使用软件IIC模拟通信时序来。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

254

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2015-10-17
在线时间
145 小时
发表于 2016-11-4 16:11:16 | 显示全部楼层
现在的问题是通信存在问题,硬件IIC比较复杂,而且稳定性也不是太好建议您像原子哥那样使用软件IIC模拟通信时序来。
开着单片机翱翔在天空
回复

使用道具 举报

10

主题

254

帖子

0

精华

高级会员

Rank: 4

积分
594
金钱
594
注册时间
2015-10-17
在线时间
145 小时
发表于 2016-11-4 17:00:35 | 显示全部楼层
原子哥的例程是可以的,不过不行的话估计是你的通信存在问题,在IIC通信的时候能不能正常接收到应答信号呢? 其次就是数据线和时钟线有没有加上啦电阻 3.3V的上啦。
开着单片机翱翔在天空
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-11-3
在线时间
14 小时
 楼主| 发表于 2016-11-4 17:04:26 | 显示全部楼层
原_子_哥门徒 发表于 2016-11-4 17:00
原子哥的例程是可以的,不过不行的话估计是你的通信存在问题,在IIC通信的时候能不能正常接收到应答信号呢 ...

void I2C_EE_PageWrite(uint8_t *pBuffer,uint8_t WriteAddr,uint16_t NumByteToWrite)
{       
        while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY));
       
        I2C_GenerateSTART(I2C1,ENABLE);
        while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_MODE_SELECT));        //STM32的I2C主模式,EV5
        I2C_Send7bitAddress(I2C1,EEPROM_ADDRESS,I2C_Direction_Transmitter);
        while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));        // EV6
        printf("   hahaha");//用串口检测   发现卡死在这个应答接受位置
        I2C_SendData(I2C1,WriteAddr);        //发送完I2C的地址后的第一个数据是将要对存储矩阵写入的地址
        while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED));                // EV8
       
        while(NumByteToWrite --)
        {
                I2C_SendData(I2C1,*pBuffer);                //开始发送数据
                pBuffer++;
                while(!I2C_CheckEvent(I2C1,I2C_EVENT_MASTER_BYTE_TRANSMITTED));
        }
        I2C_GenerateSTOP(I2C1,ENABLE);                        //数据发送完毕,发送停止信号
}




我用串口检测了一下,就是在IIC设备寻址之后没有应答产生, 难道是它的硬件连接问题?
回复

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-7 11:36:07 | 显示全部楼层
为什么不用逻辑分析仪来调试时序~建议做驱动工作配置适当的仪器仪表,大大加快开发效率
回复

使用道具 举报

4

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2016-11-3
在线时间
14 小时
 楼主| 发表于 2016-11-8 19:07:03 | 显示全部楼层
用软件IIC写出来了  谢谢!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 02:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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