279 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			279 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			C
		
	
	
	
| /**
 | |
|   ******************************************************************************
 | |
|   * @file    spfd5408.h
 | |
|   * @author  MCD Application Team
 | |
|   * @version V1.1.1
 | |
|   * @date    26-November-2014
 | |
|   * @brief   This file contains all the functions prototypes for the spfd5408.c
 | |
|   *          driver.
 | |
|   ******************************************************************************
 | |
|   * @attention
 | |
|   *
 | |
|   * <h2><center>© COPYRIGHT(c) 2014 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.
 | |
|   *
 | |
|   ******************************************************************************
 | |
|   */
 | |
| 
 | |
| /* Define to prevent recursive inclusion -------------------------------------*/
 | |
| #ifndef __SPFD5408_H
 | |
| #define __SPFD5408_H
 | |
| 
 | |
| #ifdef __cplusplus
 | |
|  extern "C" {
 | |
| #endif 
 | |
| 
 | |
| /* Includes ------------------------------------------------------------------*/
 | |
| #include "../Common/lcd.h"
 | |
| 
 | |
| /** @addtogroup BSP
 | |
|   * @{
 | |
|   */
 | |
| 
 | |
| /** @addtogroup Components
 | |
|   * @{
 | |
|   */
 | |
| 
 | |
| /** @addtogroup SPFD5408
 | |
|   * @{
 | |
|   */
 | |
| 
 | |
| /** @defgroup SPFD5408_Exported_Types
 | |
|   * @{
 | |
|   */
 | |
|    
 | |
| /**
 | |
|   * @}
 | |
|   */ 
 | |
| 
 | |
| /** @defgroup SPFD5408_Exported_Constants
 | |
|   * @{
 | |
|   */
 | |
| /** 
 | |
|   * @brief  SPFD5408 ID  
 | |
|   */  
 | |
| #define  SPFD5408_ID    0x5408
 | |
|    
 | |
| /** 
 | |
|   * @brief  SPFD5408 Size  
 | |
|   */  
 | |
| #define  SPFD5408_LCD_PIXEL_WIDTH    ((uint16_t)320)
 | |
| #define  SPFD5408_LCD_PIXEL_HEIGHT   ((uint16_t)240)
 | |
|    
 | |
| /** 
 | |
|   * @brief  SPFD5408 Registers  
 | |
|   */ 
 | |
| #define LCD_REG_0             0x00
 | |
| #define LCD_REG_1             0x01
 | |
| #define LCD_REG_2             0x02
 | |
| #define LCD_REG_3             0x03
 | |
| #define LCD_REG_4             0x04
 | |
| #define LCD_REG_5             0x05
 | |
| #define LCD_REG_6             0x06
 | |
| #define LCD_REG_7             0x07
 | |
| #define LCD_REG_8             0x08
 | |
| #define LCD_REG_9             0x09
 | |
| #define LCD_REG_10            0x0A
 | |
| #define LCD_REG_12            0x0C
 | |
| #define LCD_REG_13            0x0D
 | |
| #define LCD_REG_14            0x0E
 | |
| #define LCD_REG_15            0x0F
 | |
| #define LCD_REG_16            0x10
 | |
| #define LCD_REG_17            0x11
 | |
| #define LCD_REG_18            0x12
 | |
| #define LCD_REG_19            0x13
 | |
| #define LCD_REG_20            0x14
 | |
| #define LCD_REG_21            0x15
 | |
| #define LCD_REG_22            0x16
 | |
| #define LCD_REG_23            0x17
 | |
| #define LCD_REG_24            0x18
 | |
| #define LCD_REG_25            0x19
 | |
| #define LCD_REG_26            0x1A
 | |
| #define LCD_REG_27            0x1B
 | |
| #define LCD_REG_28            0x1C
 | |
| #define LCD_REG_29            0x1D
 | |
| #define LCD_REG_30            0x1E
 | |
| #define LCD_REG_31            0x1F
 | |
| #define LCD_REG_32            0x20
 | |
| #define LCD_REG_33            0x21
 | |
| #define LCD_REG_34            0x22
 | |
| #define LCD_REG_35            0x23
 | |
| #define LCD_REG_36            0x24
 | |
| #define LCD_REG_37            0x25
 | |
| #define LCD_REG_39            0x27
 | |
| #define LCD_REG_40            0x28
 | |
| #define LCD_REG_41            0x29
 | |
| #define LCD_REG_43            0x2B
 | |
| #define LCD_REG_45            0x2D
 | |
| #define LCD_REG_48            0x30
 | |
| #define LCD_REG_49            0x31
 | |
| #define LCD_REG_50            0x32
 | |
| #define LCD_REG_51            0x33
 | |
| #define LCD_REG_52            0x34
 | |
| #define LCD_REG_53            0x35
 | |
| #define LCD_REG_54            0x36
 | |
| #define LCD_REG_55            0x37
 | |
| #define LCD_REG_56            0x38
 | |
| #define LCD_REG_57            0x39
 | |
| #define LCD_REG_59            0x3B
 | |
| #define LCD_REG_60            0x3C
 | |
| #define LCD_REG_61            0x3D
 | |
| #define LCD_REG_62            0x3E
 | |
| #define LCD_REG_63            0x3F
 | |
| #define LCD_REG_64            0x40
 | |
| #define LCD_REG_65            0x41
 | |
| #define LCD_REG_66            0x42
 | |
| #define LCD_REG_67            0x43
 | |
| #define LCD_REG_68            0x44
 | |
| #define LCD_REG_69            0x45
 | |
| #define LCD_REG_70            0x46
 | |
| #define LCD_REG_71            0x47
 | |
| #define LCD_REG_72            0x48
 | |
| #define LCD_REG_73            0x49
 | |
| #define LCD_REG_74            0x4A
 | |
| #define LCD_REG_75            0x4B
 | |
| #define LCD_REG_76            0x4C
 | |
| #define LCD_REG_77            0x4D
 | |
| #define LCD_REG_78            0x4E
 | |
| #define LCD_REG_79            0x4F
 | |
| #define LCD_REG_80            0x50
 | |
| #define LCD_REG_81            0x51
 | |
| #define LCD_REG_82            0x52
 | |
| #define LCD_REG_83            0x53
 | |
| #define LCD_REG_84            0x54
 | |
| #define LCD_REG_85            0x55
 | |
| #define LCD_REG_86            0x56
 | |
| #define LCD_REG_87            0x57
 | |
| #define LCD_REG_88            0x58
 | |
| #define LCD_REG_89            0x59
 | |
| #define LCD_REG_90            0x5A
 | |
| #define LCD_REG_91            0x5B
 | |
| #define LCD_REG_92            0x5C
 | |
| #define LCD_REG_93            0x5D
 | |
| #define LCD_REG_96            0x60
 | |
| #define LCD_REG_97            0x61
 | |
| #define LCD_REG_106           0x6A
 | |
| #define LCD_REG_118           0x76
 | |
| #define LCD_REG_128           0x80
 | |
| #define LCD_REG_129           0x81
 | |
| #define LCD_REG_130           0x82
 | |
| #define LCD_REG_131           0x83
 | |
| #define LCD_REG_132           0x84
 | |
| #define LCD_REG_133           0x85
 | |
| #define LCD_REG_134           0x86
 | |
| #define LCD_REG_135           0x87
 | |
| #define LCD_REG_136           0x88
 | |
| #define LCD_REG_137           0x89
 | |
| #define LCD_REG_139           0x8B
 | |
| #define LCD_REG_140           0x8C
 | |
| #define LCD_REG_141           0x8D
 | |
| #define LCD_REG_143           0x8F
 | |
| #define LCD_REG_144           0x90
 | |
| #define LCD_REG_145           0x91
 | |
| #define LCD_REG_146           0x92
 | |
| #define LCD_REG_147           0x93
 | |
| #define LCD_REG_148           0x94
 | |
| #define LCD_REG_149           0x95
 | |
| #define LCD_REG_150           0x96
 | |
| #define LCD_REG_151           0x97
 | |
| #define LCD_REG_152           0x98
 | |
| #define LCD_REG_153           0x99
 | |
| #define LCD_REG_154           0x9A
 | |
| #define LCD_REG_157           0x9D
 | |
| #define LCD_REG_192           0xC0
 | |
| #define LCD_REG_193           0xC1
 | |
| #define LCD_REG_227           0xE3
 | |
| #define LCD_REG_229           0xE5
 | |
| #define LCD_REG_231           0xE7
 | |
| #define LCD_REG_239           0xEF
 | |
| #define LCD_REG_232           0xE8
 | |
| #define LCD_REG_233           0xE9
 | |
| #define LCD_REG_234           0xEA
 | |
| #define LCD_REG_235           0xEB
 | |
| #define LCD_REG_236           0xEC
 | |
| #define LCD_REG_237           0xED
 | |
| #define LCD_REG_241           0xF1
 | |
| #define LCD_REG_242           0xF2
 | |
| 
 | |
| /**
 | |
|   * @}
 | |
|   */
 | |
|   
 | |
| /** @defgroup SPFD5408_Exported_Functions
 | |
|   * @{
 | |
|   */ 
 | |
| void     spfd5408_Init(void);
 | |
| uint16_t spfd5408_ReadID(void);
 | |
| void     spfd5408_WriteReg(uint8_t LCDReg, uint16_t LCDRegValue);
 | |
| uint16_t spfd5408_ReadReg(uint8_t LCDReg);
 | |
| 
 | |
| void     spfd5408_DisplayOn(void);
 | |
| void     spfd5408_DisplayOff(void);
 | |
| void     spfd5408_SetCursor(uint16_t Xpos, uint16_t Ypos);
 | |
| void     spfd5408_WritePixel(uint16_t Xpos, uint16_t Ypos, uint16_t RGBCode);
 | |
| uint16_t spfd5408_ReadPixel(uint16_t Xpos, uint16_t Ypos);
 | |
| 
 | |
| void     spfd5408_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
 | |
| void     spfd5408_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length);
 | |
| void     spfd5408_DrawBitmap(uint16_t Xpos, uint16_t Ypos, uint8_t *pbmp);
 | |
| 
 | |
| void     spfd5408_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
 | |
| 
 | |
| 
 | |
| uint16_t spfd5408_GetLcdPixelWidth(void);
 | |
| uint16_t spfd5408_GetLcdPixelHeight(void);
 | |
| 
 | |
| /* LCD driver structure */
 | |
| extern LCD_DrvTypeDef   spfd5408_drv;
 | |
| 
 | |
| /* LCD IO functions */
 | |
| void     LCD_IO_Init(void);
 | |
| void     LCD_IO_WriteMultipleData(uint8_t *pData, uint32_t Size);
 | |
| void     LCD_IO_WriteReg(uint8_t Reg);
 | |
| uint16_t LCD_IO_ReadData(uint16_t Reg);
 | |
| void     LCD_Delay (uint32_t delay);
 | |
| /**
 | |
|   * @}
 | |
|   */ 
 | |
|       
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* __SPFD5408_H */
 | |
| /**
 | |
|   * @}
 | |
|   */
 | |
| 
 | |
| /**
 | |
|   * @}
 | |
|   */
 | |
| 
 | |
| 
 | |
| /**
 | |
|   * @}
 | |
|   */ 
 | |
| 
 | |
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 |