|
楼主 |
发表于 2018-4-22 11:55:29
|
显示全部楼层
本帖最后由 wangjun110 于 2018-4-22 12:01 编辑
库函数调用改为寄存器方式,提高了不少速度。
1.帮忙看下视频,鱼游动的时候背景不对。是不是读点函数没实现呢?
2.参考下DMA的传输方式好吗?(我用DMA传输的话可能是因为太快显示不正常了)
3.SPI方式的读点函数一直没成功过。
4.附件为视频
static void _DrawBitLine16BPP(GUI_DEVICE * pDevice, int x, int y, U16 const GUI_UNI_PTR * p, int xsize)
{
// for (;xsize > 0; xsize--, x++, p++)
// {
// _SetPixelIndex(pDevice, x, y, *p);
// //lcd_SetPixelIndex(x,y,*p);
// //LCD_SetCursor(x,y);
// //LCD_WR_DATA8(*p);
// //LCD_WR_DATA(*p);
// }
LCD_PIXELINDEX pixel;
u8 TxData[256],Rxdata[256],i=0;
OLED_DC_Clr();
TxData[0]=0x2a;
//HAL_SPI_TransmitReceive(&SPI1_Handler,TxData,Rxdata,1, 1000);
SPI1_Write_N_Byte(TxData,1);
OLED_DC_Set();
TxData[0]=x>>8;
TxData[1]=x;
//HAL_SPI_TransmitReceive(&SPI1_Handler,TxData,Rxdata,2, 1000);
SPI1_Write_N_Byte(TxData,2);
OLED_DC_Clr();
TxData[0]=0x2B;
//HAL_SPI_TransmitReceive(&SPI1_Handler,TxData,Rxdata,1, 1000);
SPI1_Write_N_Byte(TxData,1);
OLED_DC_Set();
TxData[0]=y>>8;
TxData[1]=y;
//HAL_SPI_TransmitReceive(&SPI1_Handler,TxData,Rxdata,2, 1000);
SPI1_Write_N_Byte(TxData,2);
OLED_DC_Clr();
TxData[0]=0x2C;
//HAL_SPI_TransmitReceive(&SPI1_Handler,TxData,Rxdata,1, 1000);
SPI1_Write_N_Byte(TxData,1);
for (;xsize > 0; xsize--,x++, p++)
{
// pixel = *p;
// TxData=pixel>>8;
// TxData[i+1]=pixel;
// i++;
pixel = *p;
OLED_DC_Set();
TxData[0]=pixel>>8;
TxData[1]=pixel;
SPI1_Write_N_Byte(TxData,2);
//HAL_SPI_TransmitReceive(&SPI1_Handler,TxData,Rxdata,2, 1000);
//HAL_SPI_TransmitReceive_DMA(&SPI1_Handler, TxData, Rxdata, 2);
}
}
|
-
-
2.mp4
6.76 MB, 下载次数: 103
视频
|