102 lines
4.4 KiB
C
102 lines
4.4 KiB
C
/**
|
|
******************************************************************************
|
|
* @file lcd.h
|
|
* @author MCD Application Team
|
|
* @version V4.0.1
|
|
* @date 21-July-2015
|
|
* @brief This file contains all the functions prototypes for the LCD driver.
|
|
******************************************************************************
|
|
* @attention
|
|
*
|
|
* <h2><center>© COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without modification,
|
|
* are permitted provided that the following conditions are met:
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
* 3. Neither the name of STMicroelectronics nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*
|
|
******************************************************************************
|
|
*/
|
|
|
|
/*
|
|
* Modify:
|
|
- ReadID return type: uint16_t to uint32_t (there is a display that has a 24-bit ID)
|
|
- Add the LCD_REVERSE16 macro (so that dma can be used on the fsmc 8-bit interface for bitmap drawing)
|
|
*/
|
|
|
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
|
#ifndef __LCD_H
|
|
#define __LCD_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
//=============================================================================
|
|
/* Setting section (please set the necessary things in this section) */
|
|
|
|
/* 16bit/pixel data byte order
|
|
- 0: no change (default)
|
|
- 1: change
|
|
note: Enter a value of 1 only if you use an 8-bit fmsc IO driver and want to use DMA to draw bitmap images.
|
|
The filling operation is DMA capable even with a value of 0.
|
|
attention: the byte order should also be in reverse order in memory blocks containing images,
|
|
because the displayed image will be incorrect. This is necessary because DMA can only write to the
|
|
fsmc 8-bit peripheral in ascending byte order, but the LCD display requires reverse pixel byte order. */
|
|
#define LCD_REVERSE16 0
|
|
|
|
//=============================================================================
|
|
/* Interface section */
|
|
|
|
/* Includes ------------------------------------------------------------------*/
|
|
#include <stdint.h>
|
|
|
|
typedef struct
|
|
{
|
|
void (*Init)(void);
|
|
uint32_t (*ReadID)(void);
|
|
void (*DisplayOn)(void);
|
|
void (*DisplayOff)(void);
|
|
void (*SetCursor)(uint16_t, uint16_t);
|
|
void (*WritePixel)(uint16_t, uint16_t, uint16_t);
|
|
uint16_t (*ReadPixel)(uint16_t, uint16_t);
|
|
|
|
void (*SetDisplayWindow)(uint16_t, uint16_t, uint16_t, uint16_t);
|
|
void (*DrawHLine)(uint16_t, uint16_t, uint16_t, uint16_t);
|
|
void (*DrawVLine)(uint16_t, uint16_t, uint16_t, uint16_t);
|
|
|
|
uint16_t (*GetLcdPixelWidth)(void);
|
|
uint16_t (*GetLcdPixelHeight)(void);
|
|
void (*DrawBitmap)(uint16_t, uint16_t, uint8_t*);
|
|
void (*DrawRGBImage)(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t*);
|
|
void (*FillRect)(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t);
|
|
void (*ReadRGBImage)(uint16_t, uint16_t, uint16_t, uint16_t, uint16_t*);
|
|
void (*Scroll)(int16_t, uint16_t, uint16_t);
|
|
void (*UserCommand)(uint16_t, uint8_t*, uint32_t, uint8_t);
|
|
}LCD_DrvTypeDef;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __LCD_H */
|
|
|
|
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|