|

楼主 |
发表于 2021-4-9 14:16:00
|
显示全部楼层
现在两个问题 第一个就是之前显示鼠标指针和位图都是一半对一半有问题,我把GUIDRV_Template里面的/**********************************************************************
* Draw Bitmap 16 BPP, not optimized
*/
static void _DrawBitLine16BPP(GUI_DEVICE * pDevice, int x, int y, U16 const GUI_UNI_PTR * p, int xsize) {
#if emWin_Optimize
//emWin_DrawHColorLine(x, y, xsize, (uint16_t *)p);
//ILI9488_DrawHColorLine(x, y, xsize, (uint16_t *)p);取消
for (;xsize > 0; xsize--, x++, p++)
{
_SetPixelIndex(pDevice, x, y, *p);
}用打点替换
#else
for (;xsize > 0; xsize--, x++, p++)
{
_SetPixelIndex(pDevice, x, y, *p);
}
#endif
}
替换就好了但是打点相对较慢(spi通讯)
第二个问题就是读点这个
uint16_t ILI9488_GetPixel(uint16_t _usX, uint16_t _usY)
{
uint16_t R = 0, G = 0, B = 0 ;
ILI9488_SetCursor(_usX, _usY); /* éèÖÃ1a±êλÖà */
ILI9488_WriteCmd(0x2E);
SPI1->CR1|=1<<11;//éèÖÃSPI16λ′«êäÄ£ê½
SPI_Cmd(SPI1, ENABLE);//ê1ÄüSPI
/*使能spi16位传输*/
LCD_CS_Clr();
LCD_DC_Set();
R = bsp_spiRead16(); /* μú1¸öÑÆ¶á£¬¶aÆú */
LCD_CS_Clr();
LCD_DC_Set();
bsp_DelayUS(2);
R = bsp_spiRead16();
LCD_CS_Clr();
LCD_DC_Set();
B = bsp_spiRead16();
LCD_CS_Clr();
LCD_DC_Set();
G = bsp_spiRead16();
LCD_CS_Set();
/*使能spi8位传输*/
SPI1->CR1=~SPI1->CR1;
SPI1->CR1|=1<<11;
SPI1->CR1=~SPI1->CR1;//éèÖÃSPI8λ′«êäÄ£ê½
SPI_Cmd(SPI1, ENABLE);//ê1ÄüSPI
ILI9488_WriteCmd(0x2C);
return (((R >> 11) << 11) | ((G >> 10 ) << 5) | (B >> 11));
}
这样颜色读出来有点不太对还是有重影,比如原本的蓝色和指针走过的地方显示的蓝色不是一个,黄色又是一样的
|
|