641529288 发表于 2025-4-17 08:29:32

不使用xdata出现不识别正确地址,可使用volatile来解决。防止编译器优化,后能正常识别了。问题解决了。谢谢

ercircle 发表于 2025-4-17 08:57:13

641529288 发表于 2025-4-17 08:26
在声明struct I2C_24Cxx xdata I2C_24C16_1 ;的时候使用xdata成功了。能正常识别地址了。
但又出现新的问 ...

缓冲区必须使用XDATA!
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=15528#pid150267

641529288 发表于 2025-4-17 09:21:41

ercircle 发表于 2025-4-17 08:57
缓冲区必须使用XDATA!
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=15528#pid150267
如何实现结构体中的成员分区存储啊,上面为edata,下面为xdata?
如果这样声明struct I2C_24Cxx xdata I2C_24C16_1,声明的结构体里面的就全是xdata了。

ercircle 发表于 2025-4-17 09:23:01

641529288 发表于 2025-4-17 09:21
如何实现结构体中的成员分区存储啊,上面为edata,下面为xdata?
如果这样声明struct I2C_24Cxx xdata I2C ...

上面不是发了吗,keil不支持这种操作。要么你就分成两个结构体。
页: 1 [2]
查看完整版本: 8051u的DMA_I2C,发送地址输入到DMA_I2CT_TXAH寄存器的问题。