找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1772|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

如何用AT24c02存儲0~99999這個數(shù),特別是大于65536 如何拆分合并?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:992703 發(fā)表于 2021-12-28 20:14 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
我知道是分高低字節(jié)存,但比如存99999這個,如何拆分合并,剛?cè)腴T,不太會處理
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:883242 發(fā)表于 2021-12-28 21:42 | 只看該作者
既然你能存儲65536,就一定知道如何拆分兩個字節(jié)到24C02里面,那么擴(kuò)展拆分4字節(jié)更是水到渠成的事情,這個問題我都想不明白。
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2021-12-28 21:57 | 只看該作者
共用體了解一下

typedef union{
   char Dat_c[4];//[0]=0x12,[1]=0x34,[2]=0x56,[3]=0x78
   int Dat_i[2];//[0]=0x1234, [1]=0x5678;
   long Dat_l;//=0x12345678
   float Dat_f;
}EData;

//Using example
EData Save_Data;
回復(fù)

使用道具 舉報(bào)

地板
ID:213173 發(fā)表于 2021-12-28 21:58 | 只看該作者
unsigned long a;
unsigned char b,c,d;

        a=99999;
//拆分
        b=a>>16;//取高8位
        c=a>>8;//取中8位
        d=a;//取低8位
//合并
        a=((unsigned long)b<<16)|((unsigned int)c<<8)|d;
回復(fù)

使用道具 舉報(bào)

5#
ID:893997 發(fā)表于 2021-12-29 15:35 | 只看該作者
建議采用取余的方式把每一位取出來
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表