用户工具

站点工具


icore4t_60

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
icore4t_60 [2020/10/10 17:45]
zgf
icore4t_60 [2022/04/01 10:58] (当前版本)
sean
行 2: 行 2:
 |技术支持电话|**0379-69926675-801**||| |技术支持电话|**0379-69926675-801**|||
 |技术支持邮件|Gingko@vip.163.com||| |技术支持邮件|Gingko@vip.163.com|||
-|技术论坛|http://​www.eeschool.org||| 
 ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^ ^  版本 ​ ^  日期 ​ ^  作者 ​ ^  修改内容 ​ ^
 |  V1.0  |  2020-09-23 ​ |  gingko ​ |  初次建立 ​ |  |  V1.0  |  2020-09-23 ​ |  gingko ​ |  初次建立 ​ | 
行 125: 行 124:
   * 层中的第一个和最后一个可见行通过配置 LTDC_LxWVPCR 寄存器中的 WVSTPOS[10:​0] 和 WVSPPOS[10:​0] 进行设置。   * 层中的第一个和最后一个可见行通过配置 LTDC_LxWVPCR 寄存器中的 WVSTPOS[10:​0] 和 WVSPPOS[10:​0] 进行设置。
 {{ :​icore4t:​iCore4T_ARM_HAL_60_3.png?​direct |}} {{ :​icore4t:​iCore4T_ARM_HAL_60_3.png?​direct |}}
-===  + 
-5.LTDC层混合 ===+=== 5.LTDC层混合 ===
  
 LTDC除了图层1和图层2两个硬件图层以外,还有一个背景层。由于背景层的刷新不需要显存空间,所以可以用这个图层验证LTDC时序配置是否有问题。 LTDC除了图层1和图层2两个硬件图层以外,还有一个背景层。由于背景层的刷新不需要显存空间,所以可以用这个图层验证LTDC时序配置是否有问题。
行 136: 行 135:
 hltdc.Init.Backcolor.Red = 255 hltdc.Init.Backcolor.Red = 255
  
-    ​对于图层1和图层2来说,支持如下8种颜色格式:+对于图层1和图层2来说,支持如下8种颜色格式:
  
   - ARGB8888   - ARGB8888
行 161: 行 160:
 int main(void) int main(void)
 { {
-int i;+        ​int i;
  HAL_Init();​  HAL_Init();​
  /* Configure the system clock */  /* Configure the system clock */
行 193: 行 192:
  demo(); ​ //​运行弹球demo  demo(); ​ //​运行弹球demo
  LCD_ON;  LCD_ON;
-     while (1) +        ​while (1) 
-     ​{ }+        { }
 } }
 </​code>​ </​code>​
行 211: 行 210:
  oldx = x;  oldx = x;
  oldy = y;  oldy = y;
-      x = x + xs;+         ​x = x + xs;
  y = y + ys;  y = y + ys;
  if((x+r)>​=480 || (x-r)<​=0){  if((x+r)>​=480 || (x-r)<​=0){
-   ​xs=-1*xs;  +         ​xs=-1*xs;  
-   ​x = x + 2*xs; +         ​x = x + 2*xs; 
-   ​co++; +         ​co++; 
-   ​if(co==7)co=0;​}+         ​if(co==7)co=0;​ 
 +                ​}
  if((y+r)>​=272 || (y-r)<​=0){  if((y+r)>​=272 || (y-r)<​=0){
-   ​ys=-1*ys; +         ​ys=-1*ys; 
-   ​y = y + 2*ys; +         ​y = y + 2*ys; 
-   ​co++; +         ​co++; 
-   ​if(co==7)co=0;​} +         ​if(co==7)co=0;​ 
 +                }
  draw_circle(x,​ y, r, colo[co], 1);  //画圆  draw_circle(x,​ y, r, colo[co], 1);  //画圆
  for(j = oldx-r-2;j < oldx+r+2;j ++){  for(j = oldx-r-2;j < oldx+r+2;j ++){
  for(i = oldy-r-2;i < oldy+r+2;i ++){  for(i = oldy-r-2;i < oldy+r+2;i ++){
-   ​if(j<1 || j>479 || i<1 || i>​271)continue;​ + if(j<1 || j>479 || i<1 || i>​271)continue;​ 
- if( (int)(x-j)*(x-j) + (int)(y-i)*(y-i) > (int)r*r ​ ){ + if( (int)(x-j)*(x-j) + (int)(y-i)*(y-i) > (int)r*r ​ ){ 
- *(volatile unsigned short int *) (address_sdram[i] + (j << 1)) = bg;+ *(volatile unsigned short int *) (address_sdram[i] + (j << 1)) = bg;
  }}}  }}}
  HAL_Delay(6); ​ //延时  HAL_Delay(6); ​ //延时
行 241: 行 241:
 void MX_LTDC_Init(void) void MX_LTDC_Init(void)
 { {
-  ​LTDC_LayerCfgTypeDef pLayerCfg = {0}; + LTDC_LayerCfgTypeDef pLayerCfg = {0}; 
-  LTDC_LayerCfgTypeDef pLayerCfg1 = {0}; + LTDC_LayerCfgTypeDef pLayerCfg1 = {0}; 
-  hltdc.Instance = LTDC; + hltdc.Instance = LTDC; 
-  hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;​ //​水平同步极性 + hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;​ //​水平同步极性 
-  hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;​ //​垂直同步极性 + hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;​ //​垂直同步极性 
-  hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;​ //​数据使能极性 + hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;​ //​数据使能极性 
-  hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;​ //​像素时钟极性 + hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;​ //​像素时钟极性 
-  hltdc.Init.HorizontalSync = 0;       //​水平同步宽度 + hltdc.Init.HorizontalSync = 0;       //​水平同步宽度 
-  hltdc.Init.VerticalSync = 0;         //​垂直同步宽度 + hltdc.Init.VerticalSync = 0;         //​垂直同步宽度 
-  hltdc.Init.AccumulatedHBP = 20;     //​水平同步后沿宽度 + hltdc.Init.AccumulatedHBP = 20;     //​水平同步后沿宽度 
-  hltdc.Init.AccumulatedVBP = 9;       //​垂直同步后沿高度 + hltdc.Init.AccumulatedVBP = 9;       //​垂直同步后沿高度 
-  hltdc.Init.AccumulatedActiveW = 500;//​有效宽度 + hltdc.Init.AccumulatedActiveW = 500;//​有效宽度 
-  hltdc.Init.AccumulatedActiveH = 281;//​有效高度 + hltdc.Init.AccumulatedActiveH = 281;//​有效高度 
-  hltdc.Init.TotalWidth = 524;          //​总宽度 + hltdc.Init.TotalWidth = 524;          //​总宽度 
-  hltdc.Init.TotalHeigh = 287;          //​总高度 + hltdc.Init.TotalHeigh = 287;          //​总高度 
-  hltdc.Init.Backcolor.Blue = 255;     //​背景RGB数值,白色 + hltdc.Init.Backcolor.Blue = 255;     //​背景RGB数值,白色 
-  hltdc.Init.Backcolor.Green = 255; + hltdc.Init.Backcolor.Green = 255; 
-  hltdc.Init.Backcolor.Red = 255; + hltdc.Init.Backcolor.Red = 255; 
-  if (HAL_LTDC_Init(&​hltdc) != HAL_OK) + if (HAL_LTDC_Init(&​hltdc) != HAL_OK) 
-  {Error_Handler();​} + {Error_Handler();​} 
-  pLayerCfg.WindowX0 = 0;    //​屏幕像素宽 + pLayerCfg.WindowX0 = 0;    //​屏幕像素宽 
-  pLayerCfg.WindowX1 = 480; + pLayerCfg.WindowX1 = 480; 
-  pLayerCfg.WindowY0 = 0;    //​屏幕像素高 +   pLayerCfg.WindowY0 = 0;    //​屏幕像素高 
-  pLayerCfg.WindowY1 = 272; + pLayerCfg.WindowY1 = 272; 
-  pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;​ //​屏幕格式 + pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;​ //​屏幕格式 
-  pLayerCfg.Alpha = 0xff;    //​透明度,不透明 +   pLayerCfg.Alpha = 0xff;    //​透明度,不透明 
-  pLayerCfg.Alpha0 = 0;      //​默认透明度 + pLayerCfg.Alpha0 = 0;      //​默认透明度 
-  pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;​ + pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;​ 
-  pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;​ + pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;​ 
-  pLayerCfg.FBStartAdress = 0xC0000000; ​ //​帧缓冲区起始地址 + pLayerCfg.FBStartAdress = 0xC0000000; ​ //​帧缓冲区起始地址 
-  pLayerCfg.ImageWidth = 480;  //​图层宽 + pLayerCfg.ImageWidth = 480;  //​图层宽 
-  pLayerCfg.ImageHeight = 272;  //​图层高 + pLayerCfg.ImageHeight = 272;  //​图层高 
-  pLayerCfg.Backcolor.Blue = 255;    //​图层背景RGB数值,白色 + pLayerCfg.Backcolor.Blue = 255;    //​图层背景RGB数值,白色 
-  pLayerCfg.Backcolor.Green = 255; + pLayerCfg.Backcolor.Green = 255; 
-  pLayerCfg.Backcolor.Red = 255; + pLayerCfg.Backcolor.Red = 255; 
-  if (HAL_LTDC_ConfigLayer(&​hltdc,​ &​pLayerCfg,​ 0) != HAL_OK) + if (HAL_LTDC_ConfigLayer(&​hltdc,​ &​pLayerCfg,​ 0) != HAL_OK) 
-  { Error_Handler();​}+ { Error_Handler();​}
 } }
  
icore4t_60.1602323148.txt.gz · 最后更改: 2020/10/10 17:45 由 zgf