亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stm3210c_eval_lcd.c

?? stm32+ucos-ii
?? C
?? 第 1 頁 / 共 4 頁
字號:
}

/**
  * @brief  Displays an polyline (between many points).
  * @param  Points: pointer to the points array.
  * @param  PointCount: Number of points.
  * @retval None
  */
void LCD_PolyLine(pPoint Points, uint16_t PointCount)
{
  int16_t X = 0, Y = 0;

  if(PointCount < 2)
  {
    return;
  }

  while(--PointCount)
  {
    X = Points->X;
    Y = Points->Y;
    Points++;
    LCD_DrawUniLine(X, Y, Points->X, Points->Y);
  }
}

/**
  * @brief  Displays an relative polyline (between many points).
  * @param  Points: pointer to the points array.
  * @param  PointCount: Number of points.
  * @param  Closed: specifies if the draw is closed or not.
  *           1: closed, 0 : not closed.
  * @retval None
  */
static void LCD_PolyLineRelativeClosed(pPoint Points, uint16_t PointCount, uint16_t Closed)
{
  int16_t X = 0, Y = 0;
  pPoint First = Points;

  if(PointCount < 2)
  {
    return;
  }  
  X = Points->X;
  Y = Points->Y;
  while(--PointCount)
  {
    Points++;
    LCD_DrawUniLine(X, Y, X + Points->X, Y + Points->Y);
    X = X + Points->X;
    Y = Y + Points->Y;
  }
  if(Closed)
  {
    LCD_DrawUniLine(First->X, First->Y, X, Y);
  }  
}

/**
  * @brief  Displays a closed polyline (between many points).
  * @param  Points: pointer to the points array.
  * @param  PointCount: Number of points.
  * @retval None
  */
void LCD_ClosedPolyLine(pPoint Points, uint16_t PointCount)
{
  LCD_PolyLine(Points, PointCount);
  LCD_DrawUniLine(Points->X, Points->Y, (Points+PointCount-1)->X, (Points+PointCount-1)->Y);
}

/**
  * @brief  Displays a relative polyline (between many points).
  * @param  Points: pointer to the points array.
  * @param  PointCount: Number of points.
  * @retval None
  */
void LCD_PolyLineRelative(pPoint Points, uint16_t PointCount)
{
  LCD_PolyLineRelativeClosed(Points, PointCount, 0);
}

/**
  * @brief  Displays a closed relative polyline (between many points).
  * @param  Points: pointer to the points array.
  * @param  PointCount: Number of points.
  * @retval None
  */
void LCD_ClosedPolyLineRelative(pPoint Points, uint16_t PointCount)
{
  LCD_PolyLineRelativeClosed(Points, PointCount, 1);
}


/**
  * @brief  Displays a  full polyline (between many points).
  * @param  Points: pointer to the points array.
  * @param  PointCount: Number of points.
  * @retval None
  */
void LCD_FillPolyLine(pPoint Points, uint16_t PointCount)
{
  /*  public-domain code by Darel Rex Finley, 2007 */
  uint16_t  nodes = 0, nodeX[MAX_POLY_CORNERS], pixelX = 0, pixelY = 0, i = 0,
  j = 0, swap = 0;
  uint16_t  IMAGE_LEFT = 0, IMAGE_RIGHT = 0, IMAGE_TOP = 0, IMAGE_BOTTOM = 0;

  IMAGE_LEFT = IMAGE_RIGHT = Points->X;
  IMAGE_TOP= IMAGE_BOTTOM = Points->Y;

  for(i = 1; i < PointCount; i++)
  {
    pixelX = POLY_X(i);
    if(pixelX < IMAGE_LEFT)
    {
      IMAGE_LEFT = pixelX;
    }
    if(pixelX > IMAGE_RIGHT)
    {
      IMAGE_RIGHT = pixelX;
    }
    
    pixelY = POLY_Y(i);
    if(pixelY < IMAGE_TOP)
    { 
      IMAGE_TOP = pixelY;
    }
    if(pixelY > IMAGE_BOTTOM)
    {
      IMAGE_BOTTOM = pixelY;
    }
  }
  
  LCD_SetTextColor(BackColor);  

  /*  Loop through the rows of the image. */
  for (pixelY = IMAGE_TOP; pixelY < IMAGE_BOTTOM; pixelY++) 
  {  
    /* Build a list of nodes. */
    nodes = 0; j = PointCount-1;

    for (i = 0; i < PointCount; i++) 
    {
      if (POLY_Y(i)<(double) pixelY && POLY_Y(j)>=(double) pixelY || POLY_Y(j)<(double) pixelY && POLY_Y(i)>=(double) pixelY) 
      {
        nodeX[nodes++]=(int) (POLY_X(i)+((pixelY-POLY_Y(i))*(POLY_X(j)-POLY_X(i)))/(POLY_Y(j)-POLY_Y(i))); 
      }
      j = i; 
    }
  
    /* Sort the nodes, via a simple 揃ubble?sort. */
    i = 0;
    while (i < nodes-1) 
    {
      if (nodeX[i]>nodeX[i+1]) 
      {
        swap = nodeX[i]; 
        nodeX[i] = nodeX[i+1]; 
        nodeX[i+1] = swap; 
        if(i)
        {
          i--; 
        }
      }
      else 
      {
        i++;
      }
    }
  
    /*  Fill the pixels between node pairs. */
    for (i = 0; i < nodes; i+=2) 
    {
      if(nodeX[i] >= IMAGE_RIGHT) 
      {
        break;
      }
      if(nodeX[i+1] > IMAGE_LEFT) 
      {
        if (nodeX[i] < IMAGE_LEFT)
        {
          nodeX[i]=IMAGE_LEFT;
        }
        if(nodeX[i+1] > IMAGE_RIGHT)
        {
          nodeX[i+1] = IMAGE_RIGHT;
        }
        LCD_SetTextColor(BackColor);
        LCD_DrawLine(pixelY, nodeX[i+1], nodeX[i+1] - nodeX[i], LCD_DIR_HORIZONTAL);
        LCD_SetTextColor(TextColor);
        PutPixel(pixelY, nodeX[i+1]);
        PutPixel(pixelY, nodeX[i]);
        /* for (j=nodeX[i]; j<nodeX[i+1]; j++) PutPixel(j,pixelY); */
      }
    }
  } 

  /* draw the edges */
  LCD_SetTextColor(TextColor);
}

/**
  * @brief  Reset LCD control line(/CS) and Send Start-Byte
  * @param  Start_Byte: the Start-Byte to be sent
  * @retval None
  */
void LCD_nCS_StartByte(uint8_t Start_Byte)
{
////www.armjishu.com
}

/**
  * @brief  Writes index to select the LCD register.
  * @param  LCD_Reg: address of the selected register.
  * @retval None
  */
void LCD_WriteRegIndex(uint8_t LCD_Reg)
{
  ClrCs
  ClrRs
  ClrWr
  LCD_Write(LCD_Reg);
  SetWr
  SetCs
}


/**
  * @brief  Reads the selected LCD Register.
  * @param  None
  * @retval LCD Register Value.
  */
uint16_t LCD_ReadReg(uint8_t LCD_Reg)
{
  uint16_t data;
  
  /* Write 16-bit Index (then Read Reg) */
  ClrCs
  ClrRs
  ClrWr
  LCD_Write(LCD_Reg);
  SetWr

  /* Read 16-bit Reg */
  SetRs
  ClrRd
  SetRd
  data = LCD_Read(); 
  SetCs
    
  return    data;
}


/**
  * @brief  Prepare to write to the LCD RAM.
  * @param  None
  * @retval None
  */
void LCD_WriteRAM_Prepare(void)
{
  /* Write 16-bit Index, then Write Reg */
  ClrCs
  ClrRs
  ClrWr
  LCD_Write(LCD_REG_34);
  SetWr
  SetRs
}


/**
  * @brief  Writes 1 word to the LCD RAM.
  * @param  RGB_Code: the pixel color in RGB mode (5-6-5).
  * @retval None
  */
void LCD_WriteRAMWord(uint16_t RGB_Code)
{
  LCD_WriteRAM_Prepare();
  LCD_WriteRAM(RGB_Code);
  SetCs
}


/**
  * @brief  Writes to the selected LCD register.
  * @param  LCD_Reg: address of the selected register.
  * @param  LCD_RegValue: value to write to the selected register.
  * @retval None
  */
void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue)
{

  /* Write 16-bit Index, then Write Reg */
  ClrCs
  ClrRs
  ClrWr
  LCD_Write(LCD_Reg);
  SetWr
  /* Write 16-bit Reg */
  SetRs
  ClrWr
  LCD_Write(LCD_RegValue);
  SetWr
  SetCs
}


/**
  * @brief  Writes to the LCD RAM.
  * @param  RGB_Code: the pixel color in RGB mode (5-6-5).
  * @retval None
  */
void LCD_WriteRAM(uint16_t RGB_Code)
{
  ClrWr
  LCD_Write(RGB_Code);
  SetWr
}


/**
  * @brief  Power on the LCD.
  * @param  None
  * @retval None
  */
void LCD_PowerOn(void)
{ 
}

/**
  * @brief  Enables the Display.
  * @param  None
  * @retval None
  */
void LCD_DisplayOn(void)
{
  /* Display On */
  //LCD_WriteReg(LCD_REG_7, 0x0173); /* 262K color and display ON */
 
}

/**
  * @brief  Disables the Display.
  * @param  None
  * @retval None
  */
void LCD_DisplayOff(void)
{
  /* Display Off */
  //LCD_WriteReg(LCD_REG_7, 0x0);
}

/*******************************************************************************
* Function Name  : LCD_Pins_Config
* Description    : Configures LCD Pins
                   Push-Pull mode.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void LCD_Pins_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;

  RCC_APB2PeriphClockCmd(LCD_CLK_RS | RCC_APB2Periph_GPIOE |
                         LCD_CLK_WR | LCD_CLK_RD |
                         LCD_CLK_CS, ENABLE);

  // DB15--0
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOE, &GPIO_InitStructure);

  //LCD_Pin_WR
  GPIO_InitStructure.GPIO_Pin = LCD_Pin_WR;
  GPIO_Init(LCD_PORT_WR, &GPIO_InitStructure);

  //LCD_Pin_CS
  GPIO_InitStructure.GPIO_Pin = LCD_Pin_CS;
  GPIO_Init(LCD_PORT_CS, &GPIO_InitStructure);

  //LCD_Pin_RS
  GPIO_InitStructure.GPIO_Pin = LCD_Pin_RS;
  GPIO_Init(LCD_PORT_RS, &GPIO_InitStructure);

  //LCD_Pin_RD
  GPIO_InitStructure.GPIO_Pin = LCD_Pin_RD;
  GPIO_Init(LCD_PORT_RD, &GPIO_InitStructure);
  
  SetCs
  SetWr
  SetRd
  SetRs
}
/**
  * @brief  Configures LCD control lines in Output Push-Pull mode.
  * @param  None
  * @retval None
  */
void LCD_CtrlLinesConfig(void)
{

}

/**
  * @brief  Sets or reset LCD control lines.
  * @param  GPIOx: where x can be B or D to select the GPIO peripheral.
  * @param  CtrlPins: the Control line. This parameter can be:
  *     @arg LCD_NCS_PIN: Chip Select pin
  * @param  BitVal: specifies the value to be written to the selected bit.
  *   This parameter can be:
  *     @arg Bit_RESET: to clear the port pin
  *     @arg Bit_SET: to set the port pin
  * @retval None
  */
void  sLCD_CtrlLinesWrite(GPIO_TypeDef* GPIOx, uint16_t CtrlPins, BitAction BitVal)
{
  /* Set or Reset the control line */
  //GPIO_WriteBit(GPIOx, CtrlPins, BitVal);
}


/**
  * @brief  Configures the LCD_SPI interface.
  * @param  None
  * @retval None
  */
void LCD_SPIConfig(void)
{

}

/**
  * @brief  Displays a pixel.
  * @param  x: pixel x.
  * @param  y: pixel y.  
  * @retval None
  */
static void PutPixel(int16_t x, int16_t y)
{ 
  if(x < 0 || x > 239 || y < 0 || y > 319)
  {
    return;  
  }
  LCD_DrawLine(x, y, 1, LCD_DIR_HORIZONTAL);
}

#ifndef USE_Delay
/**
  * @brief  Inserts a delay time.
  * @param  nCount: specifies the delay time length.
  * @retval None
  */
static void delay(__IO uint32_t nCount)
{
  __IO uint32_t index = 0; 
  for(index = (100000 * nCount); index != 0; index--)
  {
  }
}
#endif /* USE_Delay*/
/**
  * @}
  */ 

/**
  * @}
  */ 

/**
  * @}
  */
  
/**
  * @}
  */ 
  
/**
  * @}
  */  
  
/******************* (C) COPYRIGHT 2010 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产日韩亚洲一区| 久久99最新地址| 国产精品免费久久| 精品国产91乱码一区二区三区| 91成人在线精品| 成人v精品蜜桃久久一区| 精品在线你懂的| 日韩影院免费视频| 婷婷亚洲久悠悠色悠在线播放| 亚洲日本乱码在线观看| 中文字幕在线观看一区| 日韩一区二区在线免费观看| 欧美日韩精品免费观看视频 | 国产尤物一区二区在线| 日日夜夜精品视频免费| 三级一区在线视频先锋| 最新欧美精品一区二区三区| 国产精品全国免费观看高清| 国产欧美1区2区3区| 国产日韩欧美在线一区| 国产欧美视频一区二区| 国产日韩欧美电影| 欧美激情中文不卡| 亚洲欧洲一区二区在线播放| 中文字幕精品三区| 中文字幕永久在线不卡| 自拍偷拍国产精品| 一区二区三区在线视频观看| 亚洲一二三专区| 一区二区三区在线观看动漫| 亚洲一二三区不卡| 美腿丝袜一区二区三区| 成人av在线播放网址| 欧美日韩中文精品| 久久伊人中文字幕| 国产一区二区主播在线| 成人黄色片在线观看| 在线观看日产精品| 亚洲精品一区二区三区蜜桃下载 | 欧美性受xxxx黑人xyx| 538在线一区二区精品国产| 国产亚洲成av人在线观看导航| 亚洲欧美另类在线| 免费看欧美美女黄的网站| 成人国产在线观看| 欧美高清视频一二三区| 国产精品午夜在线观看| 午夜天堂影视香蕉久久| 成人午夜视频免费看| 欧美精品成人一区二区三区四区| 久久久久久久性| 亚洲成人综合视频| 成人av网站免费| 欧美一区二区精美| 伊人夜夜躁av伊人久久| 国产精品影视天天线| 欧美日韩国产首页| 国产精品久久久久久久久果冻传媒| 日韩avvvv在线播放| av电影天堂一区二区在线观看| 欧美一级日韩不卡播放免费| 亚洲女性喷水在线观看一区| 精品一区二区三区在线观看 | 欧美日韩一区三区| 国产精品丝袜91| 精品一区二区免费| 欧美日韩成人高清| 亚洲免费观看在线观看| 国产成人精品免费网站| 欧美一级夜夜爽| 亚洲一二三级电影| 91美女在线观看| 国产婷婷色一区二区三区| 三级一区在线视频先锋| 91久久精品一区二区二区| 国产精品污网站| 国产综合成人久久大片91| 欧美一区二区视频在线观看 | 高清在线不卡av| 欧美成人三级电影在线| 水野朝阳av一区二区三区| 在线亚洲+欧美+日本专区| 国产精品网站在线观看| 国产精品亚洲人在线观看| 亚洲成av人片| 91亚洲国产成人精品一区二三| 国产欧美中文在线| 国产一区二区成人久久免费影院| 欧美一区二区三区在| 五月婷婷久久综合| 欧美色偷偷大香| 亚洲一区二区三区精品在线| 91视频一区二区| 国产精品福利一区| 白白色 亚洲乱淫| 中文字幕成人av| 成人免费视频一区| 国产精品久久久久久户外露出 | 国产99久久久精品| 欧美激情一区二区在线| 国产sm精品调教视频网站| 国产视频在线观看一区二区三区| 狠狠色丁香久久婷婷综合丁香| 精品欧美一区二区久久| 精品午夜一区二区三区在线观看 | 美女视频黄a大片欧美| 91精品国产品国语在线不卡| 舔着乳尖日韩一区| 日韩一区二区三区高清免费看看| 日韩电影免费在线看| 91精品蜜臀在线一区尤物| 日本美女一区二区三区视频| 日韩午夜在线观看视频| 日本人妖一区二区| 日韩欧美一区在线观看| 久久精工是国产品牌吗| 精品国产sm最大网站| 国产一区 二区 三区一级| 日本一区二区成人| 91亚洲资源网| 亚洲国产成人av好男人在线观看| 欧美裸体bbwbbwbbw| 麻豆国产精品一区二区三区| 精品国一区二区三区| 国产成人免费视频网站高清观看视频| 国产欧美日产一区| 国产亚洲精品福利| 99久久国产免费看| 亚洲综合一二三区| 日韩视频在线你懂得| 国产一区二区美女诱惑| 国产精品国产三级国产三级人妇| 欧洲亚洲国产日韩| 紧缚捆绑精品一区二区| 中文在线一区二区| 欧美日本韩国一区| 国产精品1024久久| 亚洲一区欧美一区| 精品成a人在线观看| 99精品视频一区| 免费不卡在线视频| 国产精品久久久爽爽爽麻豆色哟哟| 91啪在线观看| 久久电影网站中文字幕| 国产精品国产三级国产aⅴ原创| 欧美日韩视频不卡| 国产 欧美在线| 视频在线在亚洲| 欧美高清在线视频| 在线播放欧美女士性生活| 成人综合激情网| 丝袜美腿亚洲色图| 国产精品护士白丝一区av| 5566中文字幕一区二区电影| 成人一级片在线观看| 亚洲成人一区二区在线观看| 久久精品视频一区二区三区| 欧美日韩在线播放三区| 丁香啪啪综合成人亚洲小说| 日韩影院在线观看| 日韩伦理免费电影| 精品不卡在线视频| 欧美三级三级三级| 成人国产亚洲欧美成人综合网| 奇米一区二区三区| 一区二区三区欧美在线观看| 久久九九99视频| 91精品国产手机| 色狠狠桃花综合| 成人手机在线视频| 国内不卡的二区三区中文字幕 | 国产精品一二三区在线| 亚洲成av人片www| 亚洲桃色在线一区| 久久久亚洲精品一区二区三区| 欧美久久久一区| 色综合久久综合| 成人av资源在线观看| 国产一区二区三区在线观看免费视频| 亚洲电影视频在线| 亚洲伦理在线精品| 国产精品麻豆一区二区| 久久女同互慰一区二区三区| 日韩一区二区高清| 欧美精品一二三区| 欧美亚一区二区| 91在线观看高清| www.亚洲国产| 国产成人精品免费| 国产一区二区精品久久91| 麻豆精品国产传媒mv男同| 日韩黄色一级片| 亚洲电影在线播放| 一区av在线播放| 亚洲毛片av在线| 亚洲精品久久7777| 一个色在线综合| 亚洲精品高清视频在线观看| 亚洲色图色小说| 亚洲日本欧美天堂|