下面通过初始化LCD的函数,将LCD屏幕清屏为全白:
/**
* [url=home.php?mod=space&uid=247401]@brief[/url] : LCD清屏,使用DMA2D将颜色数据传输到内存中
* @par Full description : 填充范围是坐标(sx,sy),(ex,ey)形成的矩形区域,
* 区域大小像素点个数是:(ex-sx+1)*(ey-sy+1)
* @param :
* sx -- x轴起点坐标
* sy -- y轴起点坐标
* ex -- x轴终点坐标
* ey -- y轴终点坐标
* Colour -- 填充的颜色
* @retval : 无
*/
void LcdClear(uint16_t sx, uint16_t sy, uint16_t ex, uint16_t ey, uint32_t Colour)
{
__HAL_RCC_DMA2D_CLK_ENABLE(); //使能DMA2D时钟
DMA2D->CR &= ~(DMA2D_CR_START); //先停止DMA2D
DMA2D->CR = DMA2D_R2M; //寄存器到存储器模式
DMA2D->OPFCCR = LTDC_PIXEL_FORMAT_RGB565; //设置颜色格式
DMA2D->OOR = 0; //设置行偏移
DMA2D->OMAR = uhLtdcFrameBuf; //输出存储器地址
DMA2D->NLR = (ey - sy + 1) | ((ex - sx + 1) << 16); //设定行数寄存器
DMA2D->OCOLR = Colour; //设定输出颜色寄存器
DMA2D->CR |= DMA2D_CR_START; //启动DMA2D
while((DMA2D->ISR & DMA2D_FLAG_TC) == 0); //等待传输完成
DMA2D->IFCR |= DMA2D_FLAG_TC; //清除传输完成标志
}
void LcdInit(void)
{
LCD_BIAS_LIGHT_ENALBE; //使能LCD背光
LcdClear(0, 0, 479, 271, 0xFFFF); //清屏全白,0xFFFF是全白
}
|
———————————————— 版权声明:本文为CSDN博主「hducollins」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/hducollins/article/details/78471539