对于清幕函数使用数组,加快SPI硬件的单个数据发送速度
void LCD_Clear(uint16_t Color)
{
uint8_t Color_buff[320*2]={0x00};
uint32_t i=0;
for(i=0;i<320;i++)
{
Color_buff[2*i]=Color/256;
Color_buff[2*i+1]=Color%256;
}
extern SPI_HandleTypeDef hspi1;
LCD_SetWindows(0,0,320-1,240-1);
HAL_GPIO_WritePin(CS_GPIO_Port,CS_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(DC_GPIO_Port,DC_Pin,GPIO_PIN_SET);
for(i=0;i<240;i++)
{
HAL_SPI_Transmit(&hspi1,Color_buff,320*2,0xffff);
}
HAL_GPIO_WritePin(CS_GPIO_Port,CS_Pin,GPIO_PIN_SET);
}
void LCD_Fill(uint16_t sx,uint16_t sy,uint16_t ex,uint16_t ey,uint16_t color)
{
uint16_t i,j;
uint16_t width=ex-sx+1;
uint16_t height=ey-sy+1;
uint8_t Color_buff[320*2]={0x00};
for(i=0;i<width;i++)
{
Color_buff[2*i]=color/256;
Color_buff[2*i+1]=color%256;
}
extern SPI_HandleTypeDef hspi1;
LCD_SetWindows(sx,sy,ex-1,ey-1);
HAL_GPIO_WritePin(CS_GPIO_Port,CS_Pin,GPIO_PIN_RESET);
HAL_GPIO_WritePin(DC_GPIO_Port,DC_Pin,GPIO_PIN_SET);
for(i=0;i<height;i++)
{
HAL_SPI_Transmit(&hspi1,Color_buff,width*2,0xffff);
}
HAL_GPIO_WritePin(CS_GPIO_Port,CS_Pin,GPIO_PIN_SET);
LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);
}