搜索
bottom↓
12
返回列表 发新帖
楼主: jackielau

通用24CXXX读写程序(GCC),兼容24C系列存储器(24C01到24C1024),支持跨器件跨页读写,支持连续

  [复制链接]

出0入0汤圆

发表于 2011-8-17 17:37:50 | 显示全部楼层
使用楼主的程序,调试了一下,用的器件是128+24c08,一开始总都不行,后来终于发现,在_24CXXX_ReadByte函数和_24CXXX_WriteByte函数发送地址是多发了一字节。。。希望后人引以为戒~

出0入0汤圆

发表于 2011-9-20 00:06:52 | 显示全部楼层
学习一下,顶楼主

出0入0汤圆

发表于 2011-9-20 08:28:08 | 显示全部楼层
顶啊

出0入0汤圆

发表于 2011-9-20 09:15:43 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-9-20 11:46:03 | 显示全部楼层
jackielau 九天
你的QQ多少?对于eeprom读和写功能上的实现应该都不是问题,最主要的是怎么保证eeprom读出来和写进去的就是我们想要的结果,比如在电压波动的时候怎么保证数据不会出错,怎么样保证读出来的就是我们写进去的数据,如果出错了怎么办?

出0入0汤圆

发表于 2011-9-22 17:03:13 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-22 22:52:05 | 显示全部楼层
呵呵,看大家的回复都很不错,发现自己还要继续啊

出0入0汤圆

发表于 2011-9-23 16:35:55 | 显示全部楼层
回复81楼,还是不行哦,编译时还是会出现那个警告,不知道何故??????
//地址处理函数,主要处理多芯片时,对于地址的处理
#if DEV_24CXX_MODLE == _24C1024
        #if MAX_ADDR > 0xFFFF        //如果地址大于65535
        void _24CXXX_AddrProcess(unsigned long Addr)
        #else
        void _24CXXX_AddrProcess(unsigned int Addr)
        #endif        //#if MAX_ADDR > 0xFFFF
        {
                if( Addr>( (MEM_SIZE+1)/2-1 ) )        //如果地址大于65535
                {
                        Addr /= (MEM_SIZE+1)/2;
                }
                else
                {
                        Addr = 0x00;
                }

                HardAddr = Addr;
        }
#else
        #if DEV_24CXX_NUM > 1        //如果使用多个芯片
                #if MAX_ADDR > 0xFFFF                //如果地址大于65535
                void _24CXXX_AddrProcess(unsigned long Addr)
                #else
                void _24CXXX_AddrProcess(unsigned int Addr)
                #endif        //#if MAX_ADDR > 0xFFFF
                {
                        if( Addr> MEM_SIZE )        //如果地址大于单芯片地址范围
                        {
                                Addr /= MEM_SIZE+1;
                        }
                        else
                        {
                                Addr = 0x00;
                        }

                        HardAddr = Addr;
                }
//        #elif        DEV_24CXX_NUM == 1     //如果使用单个芯片
        #else
        #if DEV_24CXX_NUM == 1   //如果使用单个芯
                #if MAX_ADDR > 0xFFFF                //如果地址大于65535
                void _24CXXX_AddrProcess(unsigned long Addr)
                #else
                void _24CXXX_AddrProcess(unsigned int Addr)
                #endif        //#if MAX_ADDR > 0xFFFF
                {
                        HardAddr = 0x00;
                }
        #endif        //#if DEV_24CXX_NUM > 1
#endif        //#if DEV_24CXX_MODLE==_24C1024
#endif

出0入0汤圆

发表于 2011-9-23 16:38:35 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-10-12 00:32:42 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-12-11 14:12:06 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-12-11 16:01:02 | 显示全部楼层
标记 !支持!

出0入0汤圆

发表于 2011-12-11 16:17:07 | 显示全部楼层
好程序。

出0入0汤圆

发表于 2011-12-25 18:01:42 | 显示全部楼层
谢谢楼主,刚转学avr,需要通过iic接口读取一个陀螺仪的数据,收藏了。

出0入0汤圆

发表于 2012-5-13 15:31:12 | 显示全部楼层
好贴啊!

出0入0汤圆

发表于 2012-6-26 08:37:14 | 显示全部楼层
能重发下吗。楼主。下不到了……

出0入0汤圆

 楼主| 发表于 2012-6-26 14:32:19 | 显示全部楼层
zfx19890921 发表于 2011-8-17 17:37
使用楼主的程序,调试了一下,用的器件是128+24c08,一开始总都不行,后来终于发现,在_24CXXX_ReadByte函 ...

考虑不周,24c08一下的芯片只需要一个字节的地址!
我实验的都是比较大的!

谢谢,提出意见!

出0入0汤圆

发表于 2012-6-26 17:39:21 | 显示全部楼层
正需要用,楼主能再发一次吗?

出0入0汤圆

发表于 2012-7-20 11:19:16 | 显示全部楼层
刚要学这个 谢了

出0入0汤圆

发表于 2012-7-20 13:52:33 | 显示全部楼层
谢谢分享      

出0入0汤圆

发表于 2012-7-31 16:21:22 | 显示全部楼层
记号,,,,,,,,,,

出0入0汤圆

发表于 2012-12-1 23:59:52 | 显示全部楼层
mark~  谢谢~

出0入0汤圆

发表于 2012-12-2 00:13:05 | 显示全部楼层
楼主能上一个支持25系列 OTP区烧写的程序么。。。

出0入0汤圆

发表于 2012-12-2 08:21:18 来自手机 | 显示全部楼层
记住了,有空看看

出0入0汤圆

发表于 2013-5-20 11:50:42 | 显示全部楼层
xie谢谢谢谢谢谢

出0入0汤圆

发表于 2013-5-20 15:37:20 | 显示全部楼层
不错 ;学习了

出0入0汤圆

发表于 2013-5-20 15:45:24 | 显示全部楼层
好贴子,感谢楼主!

出0入0汤圆

发表于 2013-5-28 08:27:01 | 显示全部楼层
Mark                  

出0入0汤圆

发表于 2013-6-4 15:58:28 | 显示全部楼层
最近在学习I2C  感觉有点难。

出0入0汤圆

发表于 2013-8-27 11:05:31 | 显示全部楼层
是硬件IIC还是模拟的?

出0入0汤圆

发表于 2013-8-27 11:39:17 | 显示全部楼层
mark 准备使用到项目中

出0入8汤圆

发表于 2014-4-3 15:03:06 | 显示全部楼层
测试一下~

出0入0汤圆

发表于 2014-4-3 17:12:25 | 显示全部楼层
顶一个

出200入0汤圆

发表于 2014-4-3 18:40:52 来自手机 | 显示全部楼层
收藏…………

出0入0汤圆

发表于 2014-4-11 12:29:54 | 显示全部楼层
不错不错  果然强

出0入17汤圆

发表于 2014-5-4 14:48:44 | 显示全部楼层
感谢楼主,好帖!Make

出0入0汤圆

发表于 2014-8-25 15:00:56 | 显示全部楼层
非常感谢

出0入0汤圆

发表于 2014-10-6 21:04:09 | 显示全部楼层
这样说24C01到24C1024,的地址都是16位的?
我现在用AT24C08,要是读写8位地址时,可以正读写0~19地址数据,
要是读写16位地址时,写入去的数据和读出来的数据不一样!
你有测试过24C01到24C08吗?

出0入0汤圆

发表于 2014-10-6 22:20:21 | 显示全部楼层
不是很懂,纯顶。

出0入0汤圆

发表于 2014-10-7 08:46:11 | 显示全部楼层
zfx19890921 发表于 2011-8-17 17:37
使用楼主的程序,调试了一下,用的器件是128+24c08,一开始总都不行,后来终于发现,在_24CXXX_ReadByte函 ...

请问:AT24C08是8K的空间,也就是1K BYTE,哪也就是地址有1024=0x03FF。要是只写8位地十,也就是只可以用256个BYTE?你怎样能用完这1K的空间呢?

出0入0汤圆

发表于 2014-10-7 10:04:58 | 显示全部楼层
好东西,谢谢分享

出0入0汤圆

发表于 2014-10-7 11:37:17 | 显示全部楼层
mark                     

出0入0汤圆

发表于 2014-10-7 11:58:42 | 显示全部楼层
感谢,多多收着

出0入0汤圆

发表于 2014-10-7 11:59:00 | 显示全部楼层
谢谢了,收着

出0入0汤圆

发表于 2014-10-9 12:36:03 | 显示全部楼层
carbonxie 发表于 2014-10-7 08:46
请问:AT24C08是8K的空间,也就是1K BYTE,哪也就是地址有1024=0x03FF。要是只写8位地十,也就是只可以用 ...

不单单读有问题,写也有问题...这些问题我都解决了!谢谢!没有用上比24C28更大的MCU!
楼上有人说:24C08是16位地址,这句话是错的,准确说是10位地址!
对你的程式,只想说,没有说明细节问题,比如每个STOP后再开始的话,哪么就是有10ms才可以再START...还有你的连续写函数,只
能一次写16个BYTE,并且首地址只可以是if(0==addr%16)成立下才可以用...
要是说得不对的地方,请指点...谢谢!

出0入0汤圆

发表于 2017-7-6 19:39:06 | 显示全部楼层
谢谢楼主,收藏了!!!

出0入0汤圆

发表于 2017-7-8 09:21:17 | 显示全部楼层
还是喜欢单个地址的读写,主从都不受限。

出0入4汤圆

发表于 2017-7-8 09:24:55 | 显示全部楼层
kanprin 发表于 2009-7-8 23:26
感觉24C有个不是很爽的地方。
同一个系列,dataAddress有些是byte,有些是word。
搞的一个程序接口无法兼容 ...



安富莱开发板写的代码,挺好用。只需要配置,解决你的烦恼

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-4-8 20:19:39 | 显示全部楼层
ilan2003 发表于 2017-7-8 09:24
安富莱开发板写的代码,挺好用。只需要配置,解决你的烦恼

正好用到下载看看,谢谢

出0入4汤圆

发表于 2018-4-9 18:20:39 | 显示全部楼层
安富莱的程序写的挺好的

出0入0汤圆

发表于 2018-4-9 19:59:42 | 显示全部楼层

好帖子,楼主的探究精神值得学习
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 19:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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