初级会员 
  
	- 积分
 - 129
 
        - 金钱
 - 129 
 
       - 注册时间
 - 2017-8-3
 
      - 在线时间
 - 32 小时
 
 
 
 | 
 
1金钱 
画个矩形成这了 
void LTDC_Fill(u16 sx,u16 sy,u16 ex,u16 ey,u32 color) 
{  
        u32 psx,psy,pex,pey;        //以LCD面板为基准的坐标系,不随横竖屏变化而变化 
        u32 timeout=0;  
        u16 offline; 
        u32 addr;  
        //坐标系转换 
         
                psx=sx;psy=sy; 
                pex=ex;pey=ey; 
         
        offline=lcdltdc.pwidth-(pex-psx); 
        addr=(LCD_FRAME_BUF_ADDR+2*(lcdltdc.pwidth*psy+psx)); 
        __HAL_RCC_DMA2D_CLK_ENABLE();        //使能DM2D时钟 
        DMA2D->CR&=~(DMA2D_CR_START);        //先停止DMA2D 
        DMA2D->CR=DMA2D_R2M;                        //寄存器到存储器模式 
        DMA2D->OPFCCR=DMA2D_RGB565;        //设置颜色格式 
        DMA2D->OMAR=addr;                                //输出存储器地址 
        DMA2D->OOR=offline;                                //设置行偏移  
        DMA2D->FGOR=0;         
        DMA2D->NLR=(pey-psy+1)|((pex-psx+1)<<16);        //设定行数寄存器 
        DMA2D->OCOLR=color;                                                //设定输出颜色寄存器  
        DMA2D->CR|=DMA2D_CR_START;                                //启动DMA2D 
        while((DMA2D->ISR&(DMA2D_FLAG_TC))==0)        //等待传输完成 
        { 
//                timeout++; 
//                if(timeout>0X1FFFFF)break;        //超时退出 
        }  
        DMA2D->IFCR|=DMA2D_FLAG_TC;                //清除传输完成标志                  
} 
 
 |   
 
 
 
 
 
 |