看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): Ansi C 32bit MCU 額外使用到的函數庫(Library Used): 自訂lib.用來控制底層硬體 問題(Question): I2C無法寫入正確的資料. EEPROM_Black BOX內已經有預先放了幾筆dummy資料了. 使用指標無法傳入正確的值.全寫入四個全部都是 0xB4. 餵入的資料(Input): EEPRO_Balck_BOX array裡面的資料 預期的正確結果(Expected Output): Black_BOX.ROM.EEPROM[0]~[2]的資料正確送出 送出結果應該是 01,02,03 錯誤結果(Wrong Output): 0xB4 0xB4 0xB4 程式碼(Code):(請善用置底文網頁, 記得排版) 我放在這裡了. 好讀版 http://ideone.com/aMGVK5 補充說明(Supplement): 下面的這一個可以正常寫入 LDByteReadI2C(EE_ADDR,0x0001,&PFC_value,2); 這一個寫入的結果錯誤 EEPageWriteI2C(EE_ADDR, &Black_BOX.ROM.EEPROM, 3); 我的傳址應該沒有弄錯吧 我一般都使用全域變數在傳資料,這次是特別使用傳址. 會錯誤是是因為變數宣告的關係嗎? 或者我應該這樣子問,call by adress可以使用在struct上面嗎? -- 在臺灣,何謂R&D工程師? 1.Reverse and Decap :IC反向工程,去膠,打開封裝,拍照,複製電路佈局。 2.Resign and Die :沒死的就操到辭職,沒辭職的就操到死。 3.Rework and Debug :計畫永遠跟不上變化,變化永遠跟不上老闆的一句話! 4.Relax and Delay :太過於輕鬆(Relax),那麼就要有schedule delay的準備! 但是外派到大陸的臺灣郎,晚上是R (鴨)陪客戶,白天是D (豬)任人宰割! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.8.13.25 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1404352915.A.719.html ※ 編輯: kingzero (101.8.13.25), 07/03/2014 11:07:56
saxontai:WriteI2C(&data); -> WriteI2C(*data); 07/03 12:21
回樓上..搞定了. 請問我是哪裡的觀念錯誤?導致於無法正確寫入. ※ 編輯: kingzero (101.8.13.25), 07/03/2014 17:29:40
LPH66:WriteI2C 期望你將一個"值"給他讓他寫入 07/03 22:11
LPH66:而 data 是個指向"值"的指標, 自然需要 dereference 取值 07/03 22:11
LPH66:而不是去加 & 取址 07/03 22:12
那請問我的這一段呼叫可以正常存取?只是運氣好?還是剛剛好可以這樣子使用? LDByteReadI2C(EE_ADDR,0x0001,&PFC_value,2); ※ 編輯: kingzero (101.8.13.25), 07/04/2014 09:25:17 ※ 編輯: kingzero (101.8.13.25), 07/04/2014 09:25:54
saxontai:都忘了回來看一下回答有沒有幫助,差點射後不理了 XD 07/04 10:11
※ 編輯: kingzero (115.82.184.179), 07/15/2014 11:38:16