(硬件SPI)对于清幕函数使用数组,加快SPI硬件的单个数据发送速度

对于清幕函数使用数组,加快SPI硬件的单个数据发送速度

//******************************************************************
//函数名:  LCD_Clear
//作者:    CSDN搜 李某人_1
//日期:    2021-5-22
//功能:    LCD全屏填充清屏函数
//输入参数:Color:要清屏的填充色
//返回值:  无
//修改记录:无
//******************************************************************
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);
}

//******************************************************************
//函数名:  LCD_Fill
//作者:    CSDN搜 李某人_1
//日期:    2021-5-22
//功能:    在指定区域内填充颜色
//输入参数:sx:指定区域开始点x坐标
//        	sy:指定区域开始点y坐标
//			ex:指定区域结束点x坐标
//			ey:指定区域结束点y坐标
//        	color:要填充的颜色
//返回值:  无
//修改记录:无
//******************************************************************
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};//设置一个行的最大值
		
		//uint32_t i=0;
		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);//恢复窗口设置为全屏
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值