123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436 |
- /**
- ******************************************************************************
- * @file stm320518_eval_lcd.h
- * @author MCD Application Team
- * @version V1.0.0
- * @date 20-April-2012
- * @brief This file contains all the functions prototypes for the stm320518_eval_lcd
- * firmware driver.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© COPYRIGHT 2012 STMicroelectronics</center></h2>
- *
- * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
- * You may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.st.com/software_license_agreement_liberty_v2
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __STM320518_EVAL_LCD_H
- #define __STM320518_EVAL_LCD_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "stm320518_eval.h"
- #include "../Common/fonts.h"
- /** @addtogroup Utilities
- * @{
- */
-
- /** @addtogroup STM32_EVAL
- * @{
- */
- /** @addtogroup STM320518_EVAL
- * @{
- */
-
- /** @addtogroup STM320518_EVAL_LCD
- * @{
- */
- /** @defgroup STM320518_EVAL_LCD_Exported_Types
- * @{
- */
- typedef struct
- {
- int16_t X;
- int16_t Y;
- } Point, * pPoint;
- /**
- * @}
- */
- /** @defgroup STM320518_EVAL_LCD_Exported_Constants
- * @{
- */
- /**
- * @brief Uncomment the line below if you want to use LCD_DrawBMP function to
- * display a bitmap picture on the LCD. This function assumes that the bitmap
- * file is loaded in the SPI Flash (mounted on STM320518-EVAL board), however
- * user can tailor it according to his application hardware requirement.
- */
- /*#define USE_LCD_DrawBMP*/
- /**
- * @brief Uncomment the line below if you want to use user defined Delay function
- * (for precise timing), otherwise default _delay_ function defined within
- * this driver is used (less precise timing).
- */
- /* #define USE_Delay */
- #ifdef USE_Delay
- #include "main.h"
-
- #define _delay_ Delay /* !< User can provide more timing precise _delay_ function
- (with 10ms time base), using SysTick for example */
- #else
- #define _delay_ delay /* !< Default _delay_ function with less precise timing */
- #endif
- /**
- * @brief LCD Control pins
- */
- #define LCD_NCS_PIN GPIO_Pin_4
- #define LCD_NCS_GPIO_PORT GPIOF
- #define LCD_NCS_GPIO_CLK RCC_AHBPeriph_GPIOF
- #define LCD_NWR_PIN GPIO_Pin_15
- #define LCD_NWR_GPIO_PORT GPIOD
- #define LCD_NWR_GPIO_CLK RCC_AHBPeriph_GPIOD
- #define LCD_RS_PIN GPIO_Pin_7
- #define LCD_RS_GPIO_PORT GPIOD
- #define LCD_RS_GPIO_CLK RCC_AHBPeriph_GPIOD
- /**
- * @brief LCD SPI Interface pins
- */
- #define LCD_SPI_SCK_PIN GPIO_Pin_5 /* PA.05 */
- #define LCD_SPI_SCK_GPIO_PORT GPIOA /* GPIOA */
- #define LCD_SPI_SCK_GPIO_CLK RCC_AHBPeriph_GPIOA
- #define LCD_SPI_SCK_SOURCE GPIO_PinSource15
- #define LCD_SPI_SCK_AF GPIO_AF_0
- #if defined (STM320518_EVAL_REVA)
- #define LCD_SPI_MISO_PIN GPIO_Pin_6 /* PA.06 */
- #define LCD_SPI_MISO_GPIO_PORT GPIOA /* GPIOA */
- #define LCD_SPI_MISO_GPIO_CLK RCC_AHBPeriph_GPIOA
- #define LCD_SPI_MISO_SOURCE GPIO_PinSource6
- #define LCD_SPI_MISO_AF GPIO_AF_0
- #elif defined (STM320518_EVAL_REVB)
- #define LCD_SPI_MISO_PIN GPIO_Pin_4 /* PB.04 */
- #define LCD_SPI_MISO_GPIO_PORT GPIOB /* GPIOB */
- #define LCD_SPI_MISO_GPIO_CLK RCC_AHBPeriph_GPIOB
- #define LCD_SPI_MISO_SOURCE GPIO_PinSource4
- #define LCD_SPI_MISO_AF GPIO_AF_0
- #endif /* STM320518_EVAL_REVA*/
- #define LCD_SPI_MOSI_PIN GPIO_Pin_7 /* PA.07 */
- #define LCD_SPI_MOSI_GPIO_PORT GPIOA /* GPIOA */
- #define LCD_SPI_MOSI_GPIO_CLK RCC_AHBPeriph_GPIOA
- #define LCD_SPI_MOSI_SOURCE GPIO_PinSource7
- #define LCD_SPI_MOSI_AF GPIO_AF_0
- #define LCD_SPI SPI1
- #define LCD_SPI_CLK RCC_APB2Periph_SPI1
- /**
- * @brief LCD 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
- /**
- * @brief LCD color
- */
- #define LCD_COLOR_WHITE 0xFFFF
- #define LCD_COLOR_BLACK 0x0000
- #define LCD_COLOR_GREY 0xF7DE
- #define LCD_COLOR_BLUE 0x001F
- #define LCD_COLOR_BLUE2 0x051F
- #define LCD_COLOR_RED 0xF800
- #define LCD_COLOR_MAGENTA 0xF81F
- #define LCD_COLOR_GREEN 0x07E0
- #define LCD_COLOR_CYAN 0x7FFF
- #define LCD_COLOR_YELLOW 0xFFE0
- /**
- * @brief LCD Lines depending on the chosen fonts.
- */
- #define LCD_LINE_0 LINE(0)
- #define LCD_LINE_1 LINE(1)
- #define LCD_LINE_2 LINE(2)
- #define LCD_LINE_3 LINE(3)
- #define LCD_LINE_4 LINE(4)
- #define LCD_LINE_5 LINE(5)
- #define LCD_LINE_6 LINE(6)
- #define LCD_LINE_7 LINE(7)
- #define LCD_LINE_8 LINE(8)
- #define LCD_LINE_9 LINE(9)
- #define LCD_LINE_10 LINE(10)
- #define LCD_LINE_11 LINE(11)
- #define LCD_LINE_12 LINE(12)
- #define LCD_LINE_13 LINE(13)
- #define LCD_LINE_14 LINE(14)
- #define LCD_LINE_15 LINE(15)
- #define LCD_LINE_16 LINE(16)
- #define LCD_LINE_17 LINE(17)
- #define LCD_LINE_18 LINE(18)
- #define LCD_LINE_19 LINE(19)
- #define LCD_LINE_20 LINE(20)
- #define LCD_LINE_21 LINE(21)
- #define LCD_LINE_22 LINE(22)
- #define LCD_LINE_23 LINE(23)
- #define LCD_LINE_24 LINE(24)
- #define LCD_LINE_25 LINE(25)
- #define LCD_LINE_26 LINE(26)
- #define LCD_LINE_27 LINE(27)
- #define LCD_LINE_28 LINE(28)
- #define LCD_LINE_29 LINE(29)
- /**
- * @brief LCD default font
- */
- #define LCD_DEFAULT_FONT Font16x24
- /**
- * @brief LCD Direction
- */
- #define LCD_DIR_HORIZONTAL 0x0000
- #define LCD_DIR_VERTICAL 0x0001
- /**
- * @brief LCD Size (Width and Height)
- */
- #define LCD_PIXEL_WIDTH 0x0140
- #define LCD_PIXEL_HEIGHT 0x00F0
- /**
- * @}
- */
- /** @defgroup STM320518_EVAL_LCD_Exported_Macros
- * @{
- */
- #define ASSEMBLE_RGB(R, G, B) ((((R)& 0xF8) << 8) | (((G) & 0xFC) << 3) | (((B) & 0xF8) >> 3))
- /**
- * @}
- */
- /** @defgroup STM320518_EVAL_LCD_Exported_Functions
- * @{
- */
- void LCD_DeInit(void);
- void LCD_Setup(void);
- void STM320518_LCD_Init(void);
- void LCD_SetColors(__IO uint16_t _TextColor, __IO uint16_t _BackColor);
- void LCD_GetColors(__IO uint16_t *_TextColor, __IO uint16_t *_BackColor);
- void LCD_SetTextColor(__IO uint16_t Color);
- void LCD_SetBackColor(__IO uint16_t Color);
- void LCD_ClearLine(uint16_t Line);
- void LCD_Clear(uint16_t Color);
- void LCD_SetCursor(uint16_t Xpos, uint16_t Ypos);
- void LCD_DrawChar(uint16_t Xpos, uint16_t Ypos, const uint16_t *c);
- void LCD_DisplayChar(uint16_t Line, uint16_t Column, uint8_t Ascii);
- void LCD_SetFont(sFONT *fonts);
- sFONT *LCD_GetFont(void);
- void LCD_DisplayStringLine(uint16_t Line, uint8_t *ptr);
- void LCD_SetDisplayWindow(uint16_t Xpos, uint16_t Ypos, uint8_t Height, uint16_t Width);
- void LCD_WindowModeDisable(void);
- void LCD_DrawLine(uint16_t Xpos, uint16_t Ypos, uint16_t Length, uint8_t Direction);
- void LCD_DrawRect(uint16_t Xpos, uint16_t Ypos, uint8_t Height, uint16_t Width);
- void LCD_DrawCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
- void LCD_DrawMonoPict(const uint32_t *Pict);
- void LCD_DrawBMP(uint32_t BmpAddress);
- void LCD_DrawUniLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
- void LCD_DrawFullRect(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height);
- void LCD_DrawFullCircle(uint16_t Xpos, uint16_t Ypos, uint16_t Radius);
- void LCD_PolyLine(pPoint Points, uint16_t PointCount);
- void LCD_PolyLineRelative(pPoint Points, uint16_t PointCount);
- void LCD_ClosedPolyLine(pPoint Points, uint16_t PointCount);
- void LCD_ClosedPolyLineRelative(pPoint Points, uint16_t PointCount);
- void LCD_FillPolyLine(pPoint Points, uint16_t PointCount);
- void LCD_nCS_StartByte(uint8_t Start_Byte);
- void LCD_WriteRegIndex(uint8_t LCD_Reg);
- void LCD_WriteReg(uint8_t LCD_Reg, uint16_t LCD_RegValue);
- void LCD_WriteRAM_Prepare(void);
- void LCD_WriteRAMWord(uint16_t RGB_Code);
- uint16_t LCD_ReadReg(uint8_t LCD_Reg);
- void LCD_WriteRAM(uint16_t RGB_Code);
- void LCD_PowerOn(void);
- void LCD_DisplayOn(void);
- void LCD_DisplayOff(void);
- void LCD_CtrlLinesConfig(void);
- void LCD_CtrlLinesWrite(GPIO_TypeDef* GPIOx, uint16_t CtrlPins, BitAction BitVal);
- void LCD_SPIConfig(void);
- /**
- * @}
- */
-
- #ifdef __cplusplus
- }
- #endif
- #endif /* __STM320518_EVAL_LCD_H */
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
- /**
- * @}
- */
-
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|