/**
  * @brief  Initialize the LCD
  * @retval None
  */
void LCD_IO_Init(void)
{
  GPIO_InitTypeDef  gpioinitstruct = {0};

  /* LCD_CS_GPIO and LCD_DC_GPIO Periph clock enable */
  LCD_CS_GPIO_CLK_ENABLE();
  LCD_DC_GPIO_CLK_ENABLE();
  
  /* Configure LCD_CS_PIN pin: LCD Card CS pin */
  gpioinitstruct.Pin    = LCD_CS_PIN;
  gpioinitstruct.Mode   = GPIO_MODE_OUTPUT_PP;
  gpioinitstruct.Pull   = GPIO_NOPULL;
  gpioinitstruct.Speed  = GPIO_SPEED_FREQ_VERY_HIGH;
  HAL_GPIO_Init(SD_CS_GPIO_PORT, &gpioinitstruct);
      
  /* Configure LCD_DC_PIN pin: LCD Card DC pin */
  gpioinitstruct.Pin    = LCD_DC_PIN;
  HAL_GPIO_Init(LCD_DC_GPIO_PORT, &gpioinitstruct);

  /* LCD chip select high */
  LCD_CS_HIGH();
  
  /* LCD SPI Config */
  SPIx_Init();
}
/*====================================================================================================*/
void ILI9341_Config( void )
{
  GPIO_InitTypeDef GPIO_InitStruct;

  /* SPI Clk ******************************************************************/
  LCD_DC_GPIO_CLK_ENABLE();
  LCD_RST_GPIO_CLK_ENABLE();
  LCD_CST_GPIO_CLK_ENABLE();
  LCD_SCK_GPIO_CLK_ENABLE();
  LCD_SDO_GPIO_CLK_ENABLE();
  LCD_SDI_GPIO_CLK_ENABLE();
  LCD_SPIx_CLK_ENABLE();

  ILI9341_LigConfig();

  /* SPI Pin ******************************************************************/
  GPIO_InitStruct.Mode      = GPIO_MODE_OUTPUT_PP;
  GPIO_InitStruct.Pull      = GPIO_PULLUP;
  GPIO_InitStruct.Speed     = GPIO_SPEED_HIGH;

  GPIO_InitStruct.Pin       = LCD_DC_PIN;
  HAL_GPIO_Init(LCD_DC_GPIO_PORT, &GPIO_InitStruct);

  GPIO_InitStruct.Pin       = LCD_RST_PIN;
  HAL_GPIO_Init(LCD_RST_GPIO_PORT, &GPIO_InitStruct);

  GPIO_InitStruct.Pin       = LCD_CST_PIN;
  HAL_GPIO_Init(LCD_CST_GPIO_PORT, &GPIO_InitStruct);

  GPIO_InitStruct.Mode      = GPIO_MODE_AF_PP;
  GPIO_InitStruct.Pull      = GPIO_PULLUP;
  GPIO_InitStruct.Speed     = GPIO_SPEED_HIGH;

  GPIO_InitStruct.Pin       = LCD_SCK_PIN;
  GPIO_InitStruct.Alternate = LCD_SCK_AF;
  HAL_GPIO_Init(LCD_SCK_GPIO_PORT, &GPIO_InitStruct);

  GPIO_InitStruct.Pin       = LCD_SDO_PIN;
  GPIO_InitStruct.Alternate = LCD_SDO_AF;
  HAL_GPIO_Init(LCD_SDO_GPIO_PORT, &GPIO_InitStruct);

  GPIO_InitStruct.Pin       = LCD_SDI_PIN;
  GPIO_InitStruct.Alternate = LCD_SDI_AF;
  HAL_GPIO_Init(LCD_SDI_GPIO_PORT, &GPIO_InitStruct);

  LCD_CST_H;  // 低電位有效

  /* SPI Init ****************************************************************/
  SPI_HandleStruct.Instance               = LCD_SPIx;
  SPI_HandleStruct.Init.Mode              = SPI_MODE_MASTER;
  SPI_HandleStruct.Init.Direction         = SPI_DIRECTION_2LINES;
  SPI_HandleStruct.Init.DataSize          = SPI_DATASIZE_8BIT;
  SPI_HandleStruct.Init.CLKPolarity       = SPI_POLARITY_HIGH;
  SPI_HandleStruct.Init.CLKPhase          = SPI_PHASE_2EDGE;
  SPI_HandleStruct.Init.NSS               = SPI_NSS_SOFT;
  SPI_HandleStruct.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2;
  SPI_HandleStruct.Init.FirstBit          = SPI_FIRSTBIT_MSB;
  SPI_HandleStruct.Init.TIMode            = SPI_TIMODE_DISABLE;
  SPI_HandleStruct.Init.CRCCalculation    = SPI_CRCCALCULATION_ENABLE;
  SPI_HandleStruct.Init.CRCPolynomial     = 7;
  HAL_SPI_Init(&SPI_HandleStruct);

  __HAL_SPI_ENABLE(&SPI_HandleStruct);
}
Beispiel #3
0
/**
  * @brief  Initializes the LCD
  * @retval None
  */
void LCD_IO_Init(void)
{ 

	GPIO_InitTypeDef  gpioinitstruct = {0};

  /* LCD_CS_GPIO and LCD_DC_GPIO Periph clock enable */
  LCD_CS_GPIO_CLK_ENABLE();
  LCD_DC_GPIO_CLK_ENABLE();
	LCD_RW_GPIO_CLK_ENABLE() ;
  
  /* Configure LCD_CS_PIN pin: LCD Card CS pin */
  gpioinitstruct.Pin    = LCD_CS_PIN;
  gpioinitstruct.Mode   = GPIO_MODE_OUTPUT_PP;
  gpioinitstruct.Speed  = GPIO_SPEED_HIGH;
  HAL_GPIO_Init(LCD_CS_GPIO_PORT, &gpioinitstruct);
      
  /* Configure LCD_DC_PIN pin: LCD Card DC pin */
  gpioinitstruct.Pin    = LCD_DC_PIN;
  HAL_GPIO_Init(LCD_DC_GPIO_PORT, &gpioinitstruct);
  /* Configure LCD_RW_PIN pin: LCD Card DC pin */
  gpioinitstruct.Pin = LCD_RW_PIN;
  HAL_GPIO_Init(LCD_RW_GPIO_PORT, &gpioinitstruct);

  /* Configure LCD_RW_PIN pin: LCD Card DC pin */
  gpioinitstruct.Pin = LCD_RD_PIN;
  HAL_GPIO_Init(LCD_RW_GPIO_PORT, &gpioinitstruct);

  /* Configure LCD_RST PIN pin:*/
  gpioinitstruct.Pin = LCD_RST_PIN;
  HAL_GPIO_Init(LCD_RST_GPIO_PORT, &gpioinitstruct);



  /* LCD chip select high */


  /*LCD_GPIO_PORT config */
	 gpioinitstruct.Pin = LCD_DATA_PIN_7;
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
   gpioinitstruct.Pin = LCD_DATA_PIN_6;
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
	 gpioinitstruct.Pin = LCD_DATA_PIN_5;
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
	 gpioinitstruct.Pin = LCD_DATA_PIN_4;                             //10
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
	 gpioinitstruct.Pin = LCD_DATA_PIN_3;                                 //9
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
	 gpioinitstruct.Pin = LCD_DATA_PIN_2;
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
	 gpioinitstruct.Pin = LCD_DATA_PIN_1;
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
	 gpioinitstruct.Pin = LCD_DATA_PIN_0;
  HAL_GPIO_Init(LCD_GPIO_PORT,  &gpioinitstruct);
////

  LCD_CS_HIGH();


  /* LCD SPI Config */
 // SPIx_Init();
}