打印
[技术问答]

HC32F005读写24C256的问题

[复制链接]
1038|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xiongjunhui2009|  楼主 | 2019-10-26 10:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用HC32F005读写24C256没有成功
用官方例程,只写到了24C08,不知道如何改成16位地址,特别是状态位到底啥东西搞不明白
看到这个版块有HDEE5的程序,也用了一下,不知道如何适配于HC32F005,程序是针对HC32L110的

使用特权

评论回复
评论
martinhu 2020-10-12 13:30 回复TA
HDEE5这个是模拟EEPROM的程序,就是使用内部的flash作为模拟EE的功能,不涉及外部的EEPROM芯片的操作。 
沙发
xiongjunhui2009|  楼主 | 2019-10-26 10:15 | 只看该作者
请教将P01、P02设置为I2C端口的初始化程序

使用特权

评论回复
板凳
qcliu| | 2019-11-12 15:19 | 只看该作者
慢慢一点点看吧

使用特权

评论回复
地板
martinhu| | 2019-11-13 09:35 | 只看该作者
P01 和P02并不是特殊引脚,配置方法和其他引脚一样。
如果是16位寻址,那可能要改一下I2C的状态机,寻址需要发两次数据。

使用特权

评论回复
5
waveforms| | 2019-11-17 18:33 | 只看该作者
看下256芯片的datasheet

使用特权

评论回复
6
LIKE2019| | 2020-10-9 19:08 | 只看该作者
case 0x08:                                 ///< 已发送起始条件,将发送SLA+W
                I2C_ClearFunc(I2CX,I2cStart_En);
                I2C_WriteByte(I2CX,I2C_SLAVEADDR);
                                                                B_ReadCnt = 0;
                break;
            case 0x18:                                 ///< 已发送SLA+W,并接收到ACK
                                                                B_ReadCnt = 1;
                                                                I2C_WriteByte(I2CX,u8Addr>>8);            ///< 发送从机内存地址
                //I2C_WriteByte(I2CX,u8Addr>>8);            ///< 发送从机内存地址
                                                                break;
            case 0x28:                                 ///< 已发送数据,接收到ACK, 此处是已发送从机内存地址u8Addr并接收到ACK
                if(B_ReadCnt)
                                                                {
                                                                        B_ReadCnt = 0;
                                                                        I2C_WriteByte(I2CX,u8Addr);
                                                                }
                                                                else
                                                                {
                                                                        I2C_SetFunc(I2CX,I2cStart_En);         ///< 发送重复起始条件
                                                                }
                break;

使用特权

评论回复
7
LIKE2019| | 2020-10-9 19:09 | 只看该作者
LIKE2019 发表于 2020-10-9 19:08
case 0x08:                                 ///< 已发送起始条件,将发送SLA+W
                I2C_Clea ...

定义一个标志位,代码如上,实测OK~

使用特权

评论回复
8
数据采集存储| | 2020-10-9 19:19 | 只看该作者
P01 和P02并不是特殊引脚,配置方法和其他引脚一样。
如果是16位寻址,那可能要改一下I2C的状态机,寻址需要发两次数据。

使用特权

评论回复
9
看别人照片| | 2020-10-10 10:20 | 只看该作者
也用了一下,不知道如何适配于HC32F005,程序是针对HC32L110的
使用特权更多操作

使用特权

评论回复
评论
martinhu 2020-10-12 19:47 回复TA
F005 和L110的操作应该是一样的 
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

7

帖子

0

粉丝