给出指针的正确语法

correct syntax for giving a pointer

我想将一个指向内存的指针space分配给另一个寄存器,比如

DMA1_Channel4->CPAR = (uint32_t*)I2C2->TXDR;

在我的代码的其他地方,我已经使用了示例

DMA1_Channel4->CMAR  = (uint8_t*)DACdata;

这有效,但给出警告 - 赋值从整数生成指针而不进行强制转换。但是我不知道第一个实例的正确语法

DMA1_Channel4 结构的 CPAR 字段很可能需要一个 uint32_t 类型的值,但您提供了一个“指向 uint32_t 的指针”类型的值。您的意思很可能是:

DMA1_Channel4->CPAR = (uint32_t)(&(I2C2->TXDR));

请注意,我在这里添加了一个“&”,因为您很可能希望将第二个 I2C 总线的 TXDR 寄存器的地址而不是当前值本身放入 CPAR 字段。