[求助]怎么在線讀寫EEPROM?

1. 想在線讀寫24C04芯片,A1,A2接高電平,CH341EVT這個(gè)源代碼例程看過了,用里面的EEPROM配置那個(gè)選項(xiàng)卡里可以讀寫(用的CH341ReadI2C和CH341writeI2C函數(shù),24C04的設(shè)備地址設(shè)成52可以讀寫),但是只能一個(gè)地址一個(gè)地址的讀寫,而且最大地址不能超過FFH。

2.CH341ReadEEPROM函數(shù)無法設(shè)置24C04的芯片物理地址,無法使用。

3.而CH341StreamI2C看似好像可以設(shè)置24C04的物理地址,但是例程里面沒有設(shè)置的地方,源程序例程里函數(shù)調(diào)用如下: CH341StreamI2C (p_Dlg->mIndex, mwlen, &wbuffer[0], mrlen, &rbuffer[0] )

應(yīng)該是&wbuffer[0]的第一字節(jié)是設(shè)備地址,但是看不懂它怎么調(diào)用的。

本人菜鳥,綜上所述,希望高手給指教一下,用什么函數(shù)進(jìn)行帶設(shè)備地址的芯片的在線讀寫,具體方法是怎樣的,不勝感激?。?!

我建議您直接使用CH341ReadEEPROM和CH341WriteEEPROM來實(shí)現(xiàn)EEPEOM的的讀寫! BOOL WINAPI CH341ReadEEPROM( // 從EEPROM中讀取數(shù)據(jù)塊,速度約56K字節(jié) ULONG iIndex, // 指定CH341設(shè)備序號 EEPROM_TYPE iEepromID, // 指定EEPROM型號 ULONG iAddr, // 指定數(shù)據(jù)單元的地址 ULONG iLength, // 準(zhǔn)備讀取的數(shù)據(jù)字節(jié)數(shù) PUCHAR oBuffer ); // 指向一個(gè)緩沖區(qū),返回后是讀入的數(shù)據(jù)

BOOL WINAPI CH341WriteEEPROM( // 向EEPROM中寫入數(shù)據(jù)塊 ULONG iIndex, // 指定CH341設(shè)備序號 EEPROM_TYPE iEepromID, // 指定EEPROM型號 ULONG iAddr, // 指定數(shù)據(jù)單元的地址 ULONG iLength, // 準(zhǔn)備寫出的數(shù)據(jù)字節(jié)數(shù) PUCHAR iBuffer ); // 指向一個(gè)緩沖區(qū),放置準(zhǔn)備寫出的數(shù)據(jù) 下面說明一個(gè)函數(shù)參數(shù) ULONG iIndex // 指定CH341設(shè)備序號,支持多個(gè)CH341設(shè)備同時(shí)工作,如果只使用一個(gè)CH341設(shè)備iIndex = 0 EEPROM_TYPE iEepromID, // 指定EEPROM型號,要操作EEPROM的型號,支持ID_24C01,ID_24C02, ID_24C04,ID_24C08,ID_24C16,ID_24C32,ID_24C64,ID_24C128,ID_24C256,ID_24C512,ID_24C1024,ID_24C2048,ID_24C4096 ULONG iAddr, // 指定數(shù)據(jù)單元的地址,如果同時(shí)操作8片24c02,8片24c02的A2,A1,A0分別是 第1片24c02 A2 A1 A0 = 0 0 0 第2片24c02 A2 A1 A0 = 0 0 1 第3片24c02 A2 A1 A0 = 0 1 0 第4片24c02 A2 A1 A0 = 0 1 1 第5片24c02 A2 A1 A0 = 1 0 0 第6片24c02 A2 A1 A0 = 1 0 1 第7片24c02 A2 A1 A0 = 1 1 0 第8片24c02 A2 A1 A0 = 1 1 1 0 = GND 接地 1 = VCC 接電源 如果要操作第1片24c02,那么該地址應(yīng)該就是0x100 * 0x00 + 單元地址 如果要操作第2片24c02,那么該地址應(yīng)該就是0x100 * 0x01 + 單元地址 如果要操作第3片24c02,那么該地址應(yīng)該就是0x100 * 0x02 + 單元地址 ... 如果要操作第n片24c02,那么該地址應(yīng)該就是0x100 * n + 單元地址 n <= 8 24c02有256個(gè)字節(jié),所以是0x100

ULONG iLength, // 準(zhǔn)備讀/寫的數(shù)據(jù)字節(jié)數(shù) PUCHAR iBuffer // 指向一個(gè)緩沖區(qū),放置準(zhǔn)備寫出的數(shù)據(jù)/存放讀到的數(shù)據(jù)

如果還有問題,請直接撥打025-52638363


多謝指教,比說明書詳細(xì),剛試了一下,成功讀取數(shù)據(jù)了,太感謝了。

唯一有一點(diǎn)不明白,我的硬件明明是A0接的10K上拉電阻到電源,A1,A2直接接電源,但是我用0x200 * 0x06或0x200 * 0x07都讀不出來,用0x200 * 0x01讀出來了。


24c04只使用A2和A1,A0不使用,也就是說最多支持4片24c04芯片 A2 A1 A0 0 0 x 0 1 x 1 0 x 1 1 x 0x200 * 0對應(yīng)第1片24c04 0x200 * 1對應(yīng)第2片24c04 0x200 * 2對應(yīng)第3片24c04 0x200 * 3對應(yīng)第4片24c04

你訪問0x200 * 6和0x200 * 7地址當(dāng)然不行了,請查看芯片手冊! 一定要好好看芯片手冊!


多謝,程序我已經(jīng)編好了,我的24C04地址是11,選擇3可以編程,以前選1那個(gè)是我拆過有焊上去時(shí)一個(gè)引腳沒焊接牢靠所以地址成1了,現(xiàn)在用地址3讀寫很正常,多謝了,解決大問題了。


示例都是與24C系列通信的,與HUSB-238通信,寫入報(bào)錯(cuò)(實(shí)際可以寫入),讀取正常,API函數(shù)做了什么限制?


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频