[问题] 简单的指标问题(已解)

楼主: kingzero (一起迷路)   2014-07-03 10:01:49
开发平台(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上面吗?
作者: saxontai (黑暗,点缀孤零零的星)   2014-07-03 12:21:00
WriteI2C(&data); -> WriteI2C(*data);
作者: LPH66 (-6.2598534e+18f)   2014-07-03 22:11:00
WriteI2C 期望你将一个"值"给他让他写入而 data 是个指向"值"的指标, 自然需要 dereference 取值而不是去加 & 取址
作者: saxontai (黑暗,点缀孤零零的星)   2014-07-04 10:11:00
都忘了回来看一下回答有没有帮助,差点射后不理了 XD

Links booklink

Contact Us: admin [ a t ] ucptt.com