【发布时间】:2021-09-10 08:26:19
【问题描述】:
我正在尝试通过直接写入 ARGB4444 配置中的 SDRAM 来在STM32F429-DISC1 的 LCD 上打印像素。
在stm32f429i_discovery_lcd.c 文件中,我更改了以下行:
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_RGB565
为
LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_ARGB4444;
在我的 main 中,我调用了以下初始化程序:
LCD_Init();
LCD_LayerInit();
LTDC_Cmd(ENABLE);
最后我尝试打印red the 60500th pixel on Layer 1。我乘以 2,因为地址是 32 位。
*(uint32_t *) (SDRAM_BANK_ADDR + 60500 * 2) = 0xFF00;
附注:
uint32_t SDRAM_BANK_ADDR = 0xD0000000 //Beginning of Layer 1
红色像素被打印出来,但除此之外还有一个黑色像素。 这是一张图片:
怎么了?
谢谢
【问题讨论】:
-
像素以什么格式存储?
-
@Lundin ARGB4444
-
这不是一种格式。这是 DMA 缓冲区吗?如果是这样,每个像素是如何存储的?每个像素有多少字节/位,颜色分辨率是多少等等。
标签: c embedded stm32 stm32f4discovery