给出指针的正确语法
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 字段。
我想将一个指向内存的指针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 字段。