在 TFT的程序中 (BF53X_TFT_480_272)
section("sdram0_bank1") unsigned char DisplayBuffer_565[272][1440] ;
DisplayBuffer_565 已经是转换成 RGB565格式的数据。如图所示,实际行有效的数据是480*2=960个。
在设置DMA的时候:
*pDMA0_Y_MODIFY = 2;
意思就是当行(内循环)结束了之后,下一行第一个数据距离上一行最后一个数据的地址偏移(hardware manule Page 376)
"The value is the offset between the last word of one “row” and the first word of the next “row.” "
这样说的话,因为我们的数组 比方说DisplayBuffer_565[0][480*2-2] 这个数据结束了之后,2个byte的偏移不是 DisplayBuffer_565[1][0],而是DisplayBuffer_565[0][480*2]。这样不就是不对了么,但是为什么实际效果是没有问题的呢?
PS: 我试了一下数组定义改为
section("sdram0_bank1") unsigned char DisplayBuffer_565[272][960] ;
这样也是能正常工作的。
「该帖子被 sjtu_wjq 在 2013-05-30 20:16:08 编辑过」