我正在尝试使用此功能,以便在STM板的240x240 LCD上显示图像:void BSP_LCD_DrawRGBImage(uint16_t Xpos, uint16_t Ypos, uint16_t Xsize, uint16_t Ysize, uint8_t * pdata)
虽然Xpos
,Ypos
,Xsize
和Ysize
很明显,但我不知道如何处理最后一个参数uint8_t * pdata
。 Documentation说,它必须是指向RGB图像地址的指针。如何使用uint8_t *
类型获取存储在闪存中的图像地址并在此功能中使用它?我应该做什么指针操作?如何创建指向文件的指针?
我正在使用的板是DISCO-F413ZH
像素数据为565格式(16位)。这意味着Rar是5位,G是6位,B是5位长。
如果您的图片可以这样定义
const unt16_t image[] = { /*a lots of numbers*/ };
然后为了避免编译器警告,您需要将此数组指针转换为uint8_t *
BSP_LCD_DrawRGBImage(xpos, ypos, xsize, ysize, (uint8_t *)image);
STM家伙没有听说过const正确性或void *
指针:)
摘自OPs评论。您需要先将JPG文件转换为565 RGB文件。许多图形设计程序都可以做到这一点-例如GIMP。然后,您需要将其转换为C
文件。 (您可以使用许多可用程序,例如https://www.segger.com/free-utilities/bin2c/)