找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機C語言中l(wèi)ong型數(shù)據(jù)要怎么寫入AT24C02

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:289218 發(fā)表于 2022-3-23 20:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1、這是數(shù)據(jù)類型的定義:unsigned long NewData;
2、AT24C02每次只寫一個字節(jié),如何寫入long型的數(shù)據(jù)呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:161164 發(fā)表于 2022-3-24 00:20 | 只看該作者
  1. 1. 分字節(jié)寫,分字節(jié)謮
  2. ulong Temp = 0xA5B6C7D8;
  3. //write**************
  4. IapProgramByte(0x0200, (uchar)(Temp >>24));
  5. IapProgramByte(0x0201, (uchar)(Temp >>16));
  6. IapProgramByte(0x0202, (uchar)(Temp >>8));
  7. IapProgramByte(0x0203, (uchar)(Temp));

  8. //Read***************
  9. Temp = 0x00;
  10. Temp |= (ulong)IapReadByte(0x0200)<<24;
  11. Temp |= (ulong)IapReadByte(0x0201)<<16;
  12. Temp |= (ulong)IapReadByte(0x0202)<<8;
  13. Temp |= (ulong)IapReadByte(0x0203);

  14. 2. 用聯(lián)合體
  15. typedef union{
  16. uchar u8_dat[4];
  17. ulong u32_Dat;
  18. }union32;
  19. union32 union_Dat;
  20. ulong Temp = 0xA5B6C7D8;
  21. //write**************
  22. union_Dat.u32_Dat = Temp;
  23. IapProgramByte(0x0200, union_Dat.u8_dat[0]);
  24. IapProgramByte(0x0201, union_Dat.u8_dat[1]);
  25. IapProgramByte(0x0202, union_Dat.u8_dat[2]);
  26. IapProgramByte(0x0203, union_Dat.u8_dat[3]);

  27. //Read***************
  28. union_Dat.u8_dat[0] = IapReadByte(0x0200);
  29. union_Dat.u8_dat[1] = IapReadByte(0x0201);
  30. union_Dat.u8_dat[2] = IapReadByte(0x0202);
  31. union_Dat.u8_dat[3] = IapReadByte(0x0203);
  32. Temp = union_Dat.u32_Dat;

復(fù)制代碼
回復(fù)

使用道具 舉報

板凳
ID:879348 發(fā)表于 2022-3-24 08:27 | 只看該作者

unsigned char e[4];
unsigned long test;
unsigned char *d;       
test=0x11223344;       
d=(unsigned char*)&test;
  e[0]=d[0];       
  e[1]=d[1];
  e[2]=d[2];       
  e[3]=d[3];               
回復(fù)

使用道具 舉報

地板
ID:752974 發(fā)表于 2022-3-24 08:39 | 只看該作者
變量類型轉(zhuǎn)換,把要寫入的數(shù)據(jù)變換成字節(jié)類型的再寫。
回復(fù)

使用道具 舉報

5#
ID:121859 發(fā)表于 2022-3-24 08:52 | 只看該作者
連續(xù)寫入4個字節(jié)也就是長整數(shù)的低、次低,次高,高字節(jié)。
回復(fù)

使用道具 舉報

6#
ID:289218 發(fā)表于 2022-3-24 11:00 | 只看該作者
zhxiufan 發(fā)表于 2022-3-24 08:52
連續(xù)寫入4個字節(jié)也就是長整數(shù)的低、次低,次高,高字節(jié)。

感謝指導(dǎo)~
回復(fù)

使用道具 舉報

7#
ID:289218 發(fā)表于 2022-3-24 11:00 | 只看該作者
回復(fù)

使用道具 舉報

8#
ID:289218 發(fā)表于 2022-3-24 11:01 | 只看該作者
wufa1986 發(fā)表于 2022-3-24 08:27
unsigned char e[4];
unsigned long test;
unsigned char *d;       

感謝指導(dǎo)~
回復(fù)

使用道具 舉報

9#
ID:289218 發(fā)表于 2022-3-24 11:01 | 只看該作者
zhxiufan 發(fā)表于 2022-3-24 08:52
連續(xù)寫入4個字節(jié)也就是長整數(shù)的低、次低,次高,高字節(jié)。

感謝指導(dǎo)~
回復(fù)

使用道具 舉報

10#
ID:289218 發(fā)表于 2022-3-26 19:44 | 只看該作者

感謝分享,用分字節(jié)已能正常讀寫操作,謝謝~
回復(fù)

使用道具 舉報

11#
ID:1064915 發(fā)表于 2023-8-31 10:01 | 只看該作者
回復(fù)

使用道具 舉報

12#
ID:221871 發(fā)表于 2023-8-31 11:32 | 只看該作者
分4個字節(jié)進行即可
回復(fù)

使用道具 舉報

13#
ID:1092337 發(fā)表于 2023-8-31 11:51 | 只看該作者
好方法真多
回復(fù)

使用道具 舉報

14#
ID:1040201 發(fā)表于 2023-9-1 22:36 | 只看該作者
上面大佬的聯(lián)合體真好,共用一個地址
回復(fù)

使用道具 舉報

15#
ID:883242 發(fā)表于 2023-9-2 12:42 | 只看該作者
最簡潔的寫法是強制指針類型轉(zhuǎn)換,這要水平不錯才能寫。

笨一點的寫法是用union,這種寫法是人類看起來啰嗦,但實際上執(zhí)行起來的匯編碼也很簡潔,跟上一種辦法幾乎沒有差異。

最笨的寫法就是沙發(fā)位的移位,不僅人類看起來啰嗦,大量無效本來可以優(yōu)化的機器碼,不僅浪費ROM,也占用了大量的運行時間。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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