Question
STM32F769I-DISCOVERY stm32f769i_discovery_lcd.c
Posted on November 18, 2016 at 16:18
uint32_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos)
{ uint32_t ret = 0; if(hltdc_discovery.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888) { /* Read data value from SDRAM memory */ ret = *(__IO uint32_t*) (hltdc_discovery.LayerCfg[ActiveLayer].FBStartAdress + (2
*(Ypos*BSP_LCD_GetXSize() + Xpos))); //FBStartAdress=0xC0000000; } else if(hltdc_discovery.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB888) { /* Read data value from SDRAM memory */ ret = (*(__IO uint32_t*) (hltdc_discovery.LayerCfg[ActiveLayer].FBStartAdress + (2
*(Ypos*BSP_LCD_GetXSize() + Xpos))) & 0x00FFFFFF); }...................................................... return ret;}In my opinion it should be as follows:uint32_t BSP_LCD_ReadPixel(uint16_t Xpos, uint16_t Ypos){ uint32_t ret = 0; if(hltdc_discovery.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_ARGB8888) { /* Read data value from SDRAM memory */ ret = *(__IO uint32_t*) (hltdc_discovery.LayerCfg[ActiveLayer].FBStartAdress + (4
*(Ypos*BSP_LCD_GetXSize() + Xpos))); //FBStartAdress=0xC0000000; } else if(hltdc_discovery.LayerCfg[ActiveLayer].PixelFormat == LTDC_PIXEL_FORMAT_RGB888) { /* Read data value from SDRAM memory */ ret = (*(__IO uint32_t*) (hltdc_discovery.LayerCfg[ActiveLayer].FBStartAdress + (4
*(Ypos*BSP_LCD_GetXSize() + Xpos))) & 0x00FFFFFF); }...................................................... return ret;}