uint32 i; //*pDMA0_START_ADDR = &DisplayBuffer_565[0][0]; i=(uint32)(&DisplayBuffer_565[0][0]); i=i-hs_pnt*46; *pDMA0_START_ADDR=i;
这是编译警告:".\lcd.c", line 50: cc0513: {D} warning: a value of type "uint32" cannot be assigned to an entity of type "void *" *pDMA0_START_ADDR=i; //这个如何更改好??????????????
你的警告可能是由这句产生的:
i=(uint32)(&DisplayBuffer_565[0][0]);
把 (uint32) 去掉试试。
另外你的 hs_pnt 类型是否为uint32?
通常警告不需要处理,代码也可正常运行,编译器会帮你处理。
知道,我也不处理,但嫌这个警告烦。
关键是这个定义:*pDMA0_START_ADDR
它定义为:
#define pDMA0_START_ADDR (_PTR_TO_VOL_VOID_PTR DMA0_START_ADDR)
(_PTR_TO_VOL_VOID_PTR 定义为:
void * volatile *,是void行,所以和uint32型有区别,所以就出现这个问题。