mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Mon Nov 03 10:45:07 2014 +0000
Revision:
382:ee426a420dbb
Parent:
targets/cmsis/TARGET_STM/TARGET_DISCO_L053C8/stm32l0xx_hal_lcd.h@376:cb4d9db17537
Child:
489:119543c9f674
Synchronized with git revision d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83

Full URL: https://github.com/mbedmicro/mbed/commit/d54467eb07f62efd9ccdf44f1ede7fe1c1b0cf83/

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 376:cb4d9db17537 1 /**
mbed_official 376:cb4d9db17537 2 ******************************************************************************
mbed_official 376:cb4d9db17537 3 * @file stm32l0xx_hal_lcd.h
mbed_official 376:cb4d9db17537 4 * @author MCD Application Team
mbed_official 376:cb4d9db17537 5 * @version V1.1.0
mbed_official 376:cb4d9db17537 6 * @date 18-June-2014
mbed_official 376:cb4d9db17537 7 * @brief Header file of LCD Controller HAL module.
mbed_official 376:cb4d9db17537 8 ******************************************************************************
mbed_official 376:cb4d9db17537 9 * @attention
mbed_official 376:cb4d9db17537 10 *
mbed_official 376:cb4d9db17537 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 376:cb4d9db17537 12 *
mbed_official 376:cb4d9db17537 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 376:cb4d9db17537 14 * are permitted provided that the following conditions are met:
mbed_official 376:cb4d9db17537 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 376:cb4d9db17537 16 * this list of conditions and the following disclaimer.
mbed_official 376:cb4d9db17537 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 376:cb4d9db17537 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 376:cb4d9db17537 19 * and/or other materials provided with the distribution.
mbed_official 376:cb4d9db17537 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 376:cb4d9db17537 21 * may be used to endorse or promote products derived from this software
mbed_official 376:cb4d9db17537 22 * without specific prior written permission.
mbed_official 376:cb4d9db17537 23 *
mbed_official 376:cb4d9db17537 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 376:cb4d9db17537 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 376:cb4d9db17537 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 376:cb4d9db17537 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 376:cb4d9db17537 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 376:cb4d9db17537 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 376:cb4d9db17537 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 376:cb4d9db17537 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 376:cb4d9db17537 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 376:cb4d9db17537 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 376:cb4d9db17537 34 *
mbed_official 376:cb4d9db17537 35 ******************************************************************************
mbed_official 376:cb4d9db17537 36 */
mbed_official 376:cb4d9db17537 37
mbed_official 376:cb4d9db17537 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 376:cb4d9db17537 39 #ifndef __STM32L0xx_HAL_LCD_H
mbed_official 376:cb4d9db17537 40 #define __STM32L0xx_HAL_LCD_H
mbed_official 376:cb4d9db17537 41
mbed_official 376:cb4d9db17537 42 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 43 extern "C" {
mbed_official 376:cb4d9db17537 44 #endif
mbed_official 376:cb4d9db17537 45
mbed_official 376:cb4d9db17537 46 #if !defined (STM32L051xx) && !defined (STM32L052xx) && !defined (STM32L062xx) && !defined (STM32L061xx)
mbed_official 376:cb4d9db17537 47
mbed_official 376:cb4d9db17537 48 /* Includes ------------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 49 #include "stm32l0xx_hal_def.h"
mbed_official 376:cb4d9db17537 50
mbed_official 376:cb4d9db17537 51 /** @addtogroup STM32L0xx_HAL_Driver
mbed_official 376:cb4d9db17537 52 * @{
mbed_official 376:cb4d9db17537 53 */
mbed_official 376:cb4d9db17537 54
mbed_official 376:cb4d9db17537 55 /** @addtogroup LCD
mbed_official 376:cb4d9db17537 56 * @{
mbed_official 376:cb4d9db17537 57 */
mbed_official 376:cb4d9db17537 58
mbed_official 376:cb4d9db17537 59 /* Exported types ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 60
mbed_official 376:cb4d9db17537 61 /**
mbed_official 376:cb4d9db17537 62 * @brief LCD Init structure definition
mbed_official 376:cb4d9db17537 63 */
mbed_official 376:cb4d9db17537 64
mbed_official 376:cb4d9db17537 65 typedef struct
mbed_official 376:cb4d9db17537 66 {
mbed_official 376:cb4d9db17537 67 uint32_t Prescaler; /*!< Configures the LCD Prescaler.
mbed_official 376:cb4d9db17537 68 This parameter can be one value of @ref LCD_Prescaler */
mbed_official 376:cb4d9db17537 69 uint32_t Divider; /*!< Configures the LCD Divider.
mbed_official 376:cb4d9db17537 70 This parameter can be one value of @ref LCD_Divider */
mbed_official 376:cb4d9db17537 71 uint32_t Duty; /*!< Configures the LCD Duty.
mbed_official 376:cb4d9db17537 72 This parameter can be one value of @ref LCD_Duty */
mbed_official 376:cb4d9db17537 73 uint32_t Bias; /*!< Configures the LCD Bias.
mbed_official 376:cb4d9db17537 74 This parameter can be one value of @ref LCD_Bias */
mbed_official 376:cb4d9db17537 75 uint32_t VoltageSource; /*!< Selects the LCD Voltage source.
mbed_official 376:cb4d9db17537 76 This parameter can be one value of @ref LCD_Voltage_Source */
mbed_official 376:cb4d9db17537 77 uint32_t Contrast; /*!< Configures the LCD Contrast.
mbed_official 376:cb4d9db17537 78 This parameter can be one value of @ref LCD_Contrast */
mbed_official 376:cb4d9db17537 79 uint32_t DeadTime; /*!< Configures the LCD Dead Time.
mbed_official 376:cb4d9db17537 80 This parameter can be one value of @ref LCD_DeadTime */
mbed_official 376:cb4d9db17537 81 uint32_t PulseOnDuration; /*!< Configures the LCD Pulse On Duration.
mbed_official 376:cb4d9db17537 82 This parameter can be one value of @ref LCD_PulseOnDuration */
mbed_official 376:cb4d9db17537 83 uint32_t HighDrive; /*!< Enable or disable the low resistance divider.
mbed_official 376:cb4d9db17537 84 This parameter can be set to ENABLE or DISABLE. */
mbed_official 376:cb4d9db17537 85 uint32_t BlinkMode; /*!< Configures the LCD Blink Mode.
mbed_official 376:cb4d9db17537 86 This parameter can be one value of @ref LCD_BlinkMode */
mbed_official 376:cb4d9db17537 87 uint32_t BlinkFrequency; /*!< Configures the LCD Blink frequency.
mbed_official 376:cb4d9db17537 88 This parameter can be one value of @ref LCD_BlinkFrequency */
mbed_official 376:cb4d9db17537 89 }LCD_InitTypeDef;
mbed_official 376:cb4d9db17537 90
mbed_official 376:cb4d9db17537 91 /**
mbed_official 376:cb4d9db17537 92 * @brief HAL LCD State structures definition
mbed_official 376:cb4d9db17537 93 */
mbed_official 376:cb4d9db17537 94 typedef enum
mbed_official 376:cb4d9db17537 95 {
mbed_official 376:cb4d9db17537 96 HAL_LCD_STATE_RESET = 0x00, /*!< Peripheral is not yet Initialized */
mbed_official 376:cb4d9db17537 97 HAL_LCD_STATE_READY = 0x01, /*!< Peripheral Initialized and ready for use */
mbed_official 376:cb4d9db17537 98 HAL_LCD_STATE_BUSY = 0x02, /*!< an internal process is ongoing */
mbed_official 376:cb4d9db17537 99 HAL_LCD_STATE_TIMEOUT = 0x03, /*!< Timeout state */
mbed_official 376:cb4d9db17537 100 HAL_LCD_STATE_ERROR = 0x04 /*!< Error */
mbed_official 376:cb4d9db17537 101 }HAL_LCD_StateTypeDef;
mbed_official 376:cb4d9db17537 102
mbed_official 376:cb4d9db17537 103 /**
mbed_official 376:cb4d9db17537 104 * @brief HAL LCD Error Code structure definition
mbed_official 376:cb4d9db17537 105 */
mbed_official 376:cb4d9db17537 106 typedef enum
mbed_official 376:cb4d9db17537 107 {
mbed_official 376:cb4d9db17537 108 HAL_LCD_ERROR_NONE = 0x00, /*!< No error */
mbed_official 376:cb4d9db17537 109 HAL_LCD_ERROR_FCRSF = 0x01, /*!< Synchro flag timeout error */
mbed_official 376:cb4d9db17537 110 HAL_LCD_ERROR_UDR = 0x02, /*!< Update display request flag timeout error */
mbed_official 376:cb4d9db17537 111 HAL_LCD_ERROR_UDD = 0x04, /*!< Update display done flag timeout error */
mbed_official 376:cb4d9db17537 112 HAL_LCD_ERROR_ENS = 0x08, /*!< LCD enabled status flag timeout error */
mbed_official 376:cb4d9db17537 113 HAL_LCD_ERROR_RDY = 0x10 /*!< LCD Booster ready timeout error */
mbed_official 376:cb4d9db17537 114 }HAL_LCD_ErrorTypeDef;
mbed_official 376:cb4d9db17537 115
mbed_official 376:cb4d9db17537 116 /**
mbed_official 376:cb4d9db17537 117 * @brief UART handle Structure definition
mbed_official 376:cb4d9db17537 118 */
mbed_official 376:cb4d9db17537 119 typedef struct
mbed_official 376:cb4d9db17537 120 {
mbed_official 376:cb4d9db17537 121 LCD_TypeDef *Instance; /* LCD registers base address */
mbed_official 376:cb4d9db17537 122
mbed_official 376:cb4d9db17537 123 LCD_InitTypeDef Init; /* LCD communication parameters */
mbed_official 376:cb4d9db17537 124
mbed_official 376:cb4d9db17537 125 HAL_LockTypeDef Lock; /* Locking object */
mbed_official 376:cb4d9db17537 126
mbed_official 376:cb4d9db17537 127 __IO HAL_LCD_StateTypeDef State; /* LCD communication state */
mbed_official 376:cb4d9db17537 128
mbed_official 376:cb4d9db17537 129 __IO HAL_LCD_ErrorTypeDef ErrorCode; /* LCD Error code */
mbed_official 376:cb4d9db17537 130
mbed_official 376:cb4d9db17537 131 }LCD_HandleTypeDef;
mbed_official 376:cb4d9db17537 132
mbed_official 376:cb4d9db17537 133 /* Exported constants --------------------------------------------------------*/
mbed_official 376:cb4d9db17537 134
mbed_official 376:cb4d9db17537 135 /** @defgroup LCD_Exported_Constants
mbed_official 376:cb4d9db17537 136 * @{
mbed_official 376:cb4d9db17537 137 */
mbed_official 376:cb4d9db17537 138
mbed_official 376:cb4d9db17537 139 #define IS_LCD_ALL_INSTANCE(INSTANCE) ((INSTANCE) == LCD)
mbed_official 376:cb4d9db17537 140
mbed_official 376:cb4d9db17537 141 /** @defgroup LCD_Prescaler
mbed_official 376:cb4d9db17537 142 * @{
mbed_official 376:cb4d9db17537 143 */
mbed_official 376:cb4d9db17537 144
mbed_official 376:cb4d9db17537 145 #define LCD_PRESCALER_1 ((uint32_t)0x00000000) /*!< CLKPS = LCDCLK */
mbed_official 376:cb4d9db17537 146 #define LCD_PRESCALER_2 ((uint32_t)0x00400000) /*!< CLKPS = LCDCLK/2 */
mbed_official 376:cb4d9db17537 147 #define LCD_PRESCALER_4 ((uint32_t)0x00800000) /*!< CLKPS = LCDCLK/4 */
mbed_official 376:cb4d9db17537 148 #define LCD_PRESCALER_8 ((uint32_t)0x00C00000) /*!< CLKPS = LCDCLK/8 */
mbed_official 376:cb4d9db17537 149 #define LCD_PRESCALER_16 ((uint32_t)0x01000000) /*!< CLKPS = LCDCLK/16 */
mbed_official 376:cb4d9db17537 150 #define LCD_PRESCALER_32 ((uint32_t)0x01400000) /*!< CLKPS = LCDCLK/32 */
mbed_official 376:cb4d9db17537 151 #define LCD_PRESCALER_64 ((uint32_t)0x01800000) /*!< CLKPS = LCDCLK/64 */
mbed_official 376:cb4d9db17537 152 #define LCD_PRESCALER_128 ((uint32_t)0x01C00000) /*!< CLKPS = LCDCLK/128 */
mbed_official 376:cb4d9db17537 153 #define LCD_PRESCALER_256 ((uint32_t)0x02000000) /*!< CLKPS = LCDCLK/256 */
mbed_official 376:cb4d9db17537 154 #define LCD_PRESCALER_512 ((uint32_t)0x02400000) /*!< CLKPS = LCDCLK/512 */
mbed_official 376:cb4d9db17537 155 #define LCD_PRESCALER_1024 ((uint32_t)0x02800000) /*!< CLKPS = LCDCLK/1024 */
mbed_official 376:cb4d9db17537 156 #define LCD_PRESCALER_2048 ((uint32_t)0x02C00000) /*!< CLKPS = LCDCLK/2048 */
mbed_official 376:cb4d9db17537 157 #define LCD_PRESCALER_4096 ((uint32_t)0x03000000) /*!< CLKPS = LCDCLK/4096 */
mbed_official 376:cb4d9db17537 158 #define LCD_PRESCALER_8192 ((uint32_t)0x03400000) /*!< CLKPS = LCDCLK/8192 */
mbed_official 376:cb4d9db17537 159 #define LCD_PRESCALER_16384 ((uint32_t)0x03800000) /*!< CLKPS = LCDCLK/16384 */
mbed_official 376:cb4d9db17537 160 #define LCD_PRESCALER_32768 ((uint32_t)0x03C00000) /*!< CLKPS = LCDCLK/32768 */
mbed_official 376:cb4d9db17537 161
mbed_official 376:cb4d9db17537 162 #define IS_LCD_PRESCALER(PRESCALER) (((PRESCALER) == LCD_PRESCALER_1) || \
mbed_official 376:cb4d9db17537 163 ((PRESCALER) == LCD_PRESCALER_2) || \
mbed_official 376:cb4d9db17537 164 ((PRESCALER) == LCD_PRESCALER_4) || \
mbed_official 376:cb4d9db17537 165 ((PRESCALER) == LCD_PRESCALER_8) || \
mbed_official 376:cb4d9db17537 166 ((PRESCALER) == LCD_PRESCALER_16) || \
mbed_official 376:cb4d9db17537 167 ((PRESCALER) == LCD_PRESCALER_32) || \
mbed_official 376:cb4d9db17537 168 ((PRESCALER) == LCD_PRESCALER_64) || \
mbed_official 376:cb4d9db17537 169 ((PRESCALER) == LCD_PRESCALER_128) || \
mbed_official 376:cb4d9db17537 170 ((PRESCALER) == LCD_PRESCALER_256) || \
mbed_official 376:cb4d9db17537 171 ((PRESCALER) == LCD_PRESCALER_512) || \
mbed_official 376:cb4d9db17537 172 ((PRESCALER) == LCD_PRESCALER_1024) || \
mbed_official 376:cb4d9db17537 173 ((PRESCALER) == LCD_PRESCALER_2048) || \
mbed_official 376:cb4d9db17537 174 ((PRESCALER) == LCD_PRESCALER_4096) || \
mbed_official 376:cb4d9db17537 175 ((PRESCALER) == LCD_PRESCALER_8192) || \
mbed_official 376:cb4d9db17537 176 ((PRESCALER) == LCD_PRESCALER_16384) || \
mbed_official 376:cb4d9db17537 177 ((PRESCALER) == LCD_PRESCALER_32768))
mbed_official 376:cb4d9db17537 178
mbed_official 376:cb4d9db17537 179 /**
mbed_official 376:cb4d9db17537 180 * @}
mbed_official 376:cb4d9db17537 181 */
mbed_official 376:cb4d9db17537 182
mbed_official 376:cb4d9db17537 183 /** @defgroup LCD_Divider
mbed_official 376:cb4d9db17537 184 * @{
mbed_official 376:cb4d9db17537 185 */
mbed_official 376:cb4d9db17537 186
mbed_official 376:cb4d9db17537 187 #define LCD_DIVIDER_16 ((uint32_t)0x00000000) /*!< LCD frequency = CLKPS/16 */
mbed_official 376:cb4d9db17537 188 #define LCD_DIVIDER_17 ((uint32_t)0x00040000) /*!< LCD frequency = CLKPS/17 */
mbed_official 376:cb4d9db17537 189 #define LCD_DIVIDER_18 ((uint32_t)0x00080000) /*!< LCD frequency = CLKPS/18 */
mbed_official 376:cb4d9db17537 190 #define LCD_DIVIDER_19 ((uint32_t)0x000C0000) /*!< LCD frequency = CLKPS/19 */
mbed_official 376:cb4d9db17537 191 #define LCD_DIVIDER_20 ((uint32_t)0x00100000) /*!< LCD frequency = CLKPS/20 */
mbed_official 376:cb4d9db17537 192 #define LCD_DIVIDER_21 ((uint32_t)0x00140000) /*!< LCD frequency = CLKPS/21 */
mbed_official 376:cb4d9db17537 193 #define LCD_DIVIDER_22 ((uint32_t)0x00180000) /*!< LCD frequency = CLKPS/22 */
mbed_official 376:cb4d9db17537 194 #define LCD_DIVIDER_23 ((uint32_t)0x001C0000) /*!< LCD frequency = CLKPS/23 */
mbed_official 376:cb4d9db17537 195 #define LCD_DIVIDER_24 ((uint32_t)0x00200000) /*!< LCD frequency = CLKPS/24 */
mbed_official 376:cb4d9db17537 196 #define LCD_DIVIDER_25 ((uint32_t)0x00240000) /*!< LCD frequency = CLKPS/25 */
mbed_official 376:cb4d9db17537 197 #define LCD_DIVIDER_26 ((uint32_t)0x00280000) /*!< LCD frequency = CLKPS/26 */
mbed_official 376:cb4d9db17537 198 #define LCD_DIVIDER_27 ((uint32_t)0x002C0000) /*!< LCD frequency = CLKPS/27 */
mbed_official 376:cb4d9db17537 199 #define LCD_DIVIDER_28 ((uint32_t)0x00300000) /*!< LCD frequency = CLKPS/28 */
mbed_official 376:cb4d9db17537 200 #define LCD_DIVIDER_29 ((uint32_t)0x00340000) /*!< LCD frequency = CLKPS/29 */
mbed_official 376:cb4d9db17537 201 #define LCD_DIVIDER_30 ((uint32_t)0x00380000) /*!< LCD frequency = CLKPS/30 */
mbed_official 376:cb4d9db17537 202 #define LCD_DIVIDER_31 ((uint32_t)0x003C0000) /*!< LCD frequency = CLKPS/31 */
mbed_official 376:cb4d9db17537 203
mbed_official 376:cb4d9db17537 204 #define IS_LCD_DIVIDER(DIVIDER) (((DIVIDER) == LCD_DIVIDER_16) || \
mbed_official 376:cb4d9db17537 205 ((DIVIDER) == LCD_DIVIDER_17) || \
mbed_official 376:cb4d9db17537 206 ((DIVIDER) == LCD_DIVIDER_18) || \
mbed_official 376:cb4d9db17537 207 ((DIVIDER) == LCD_DIVIDER_19) || \
mbed_official 376:cb4d9db17537 208 ((DIVIDER) == LCD_DIVIDER_20) || \
mbed_official 376:cb4d9db17537 209 ((DIVIDER) == LCD_DIVIDER_21) || \
mbed_official 376:cb4d9db17537 210 ((DIVIDER) == LCD_DIVIDER_22) || \
mbed_official 376:cb4d9db17537 211 ((DIVIDER) == LCD_DIVIDER_23) || \
mbed_official 376:cb4d9db17537 212 ((DIVIDER) == LCD_DIVIDER_24) || \
mbed_official 376:cb4d9db17537 213 ((DIVIDER) == LCD_DIVIDER_25) || \
mbed_official 376:cb4d9db17537 214 ((DIVIDER) == LCD_DIVIDER_26) || \
mbed_official 376:cb4d9db17537 215 ((DIVIDER) == LCD_DIVIDER_27) || \
mbed_official 376:cb4d9db17537 216 ((DIVIDER) == LCD_DIVIDER_28) || \
mbed_official 376:cb4d9db17537 217 ((DIVIDER) == LCD_DIVIDER_29) || \
mbed_official 376:cb4d9db17537 218 ((DIVIDER) == LCD_DIVIDER_30) || \
mbed_official 376:cb4d9db17537 219 ((DIVIDER) == LCD_DIVIDER_31))
mbed_official 376:cb4d9db17537 220
mbed_official 376:cb4d9db17537 221 /**
mbed_official 376:cb4d9db17537 222 * @}
mbed_official 376:cb4d9db17537 223 */
mbed_official 376:cb4d9db17537 224
mbed_official 376:cb4d9db17537 225
mbed_official 376:cb4d9db17537 226 /** @defgroup LCD_Duty
mbed_official 376:cb4d9db17537 227 * @{
mbed_official 376:cb4d9db17537 228 */
mbed_official 376:cb4d9db17537 229
mbed_official 376:cb4d9db17537 230 #define LCD_DUTY_STATIC ((uint32_t)0x00000000) /*!< Static duty */
mbed_official 376:cb4d9db17537 231 #define LCD_DUTY_1_2 ((uint32_t)0x00000004) /*!< 1/2 duty */
mbed_official 376:cb4d9db17537 232 #define LCD_DUTY_1_3 ((uint32_t)0x00000008) /*!< 1/3 duty */
mbed_official 376:cb4d9db17537 233 #define LCD_DUTY_1_4 ((uint32_t)0x0000000C) /*!< 1/4 duty */
mbed_official 376:cb4d9db17537 234 #define LCD_DUTY_1_8 ((uint32_t)0x00000010) /*!< 1/4 duty */
mbed_official 376:cb4d9db17537 235
mbed_official 376:cb4d9db17537 236 #define IS_LCD_DUTY(DUTY) (((DUTY) == LCD_DUTY_STATIC) || \
mbed_official 376:cb4d9db17537 237 ((DUTY) == LCD_DUTY_1_2) || \
mbed_official 376:cb4d9db17537 238 ((DUTY) == LCD_DUTY_1_3) || \
mbed_official 376:cb4d9db17537 239 ((DUTY) == LCD_DUTY_1_4) || \
mbed_official 376:cb4d9db17537 240 ((DUTY) == LCD_DUTY_1_8))
mbed_official 376:cb4d9db17537 241
mbed_official 376:cb4d9db17537 242 /**
mbed_official 376:cb4d9db17537 243 * @}
mbed_official 376:cb4d9db17537 244 */
mbed_official 376:cb4d9db17537 245
mbed_official 376:cb4d9db17537 246
mbed_official 376:cb4d9db17537 247 /** @defgroup LCD_Bias
mbed_official 376:cb4d9db17537 248 * @{
mbed_official 376:cb4d9db17537 249 */
mbed_official 376:cb4d9db17537 250
mbed_official 376:cb4d9db17537 251 #define LCD_BIAS_1_4 ((uint32_t)0x00000000) /*!< 1/4 Bias */
mbed_official 376:cb4d9db17537 252 #define LCD_BIAS_1_2 LCD_CR_BIAS_0 /*!< 1/2 Bias */
mbed_official 376:cb4d9db17537 253 #define LCD_BIAS_1_3 LCD_CR_BIAS_1 /*!< 1/3 Bias */
mbed_official 376:cb4d9db17537 254
mbed_official 376:cb4d9db17537 255 #define IS_LCD_BIAS(BIAS) (((BIAS) == LCD_BIAS_1_4) || \
mbed_official 376:cb4d9db17537 256 ((BIAS) == LCD_BIAS_1_2) || \
mbed_official 376:cb4d9db17537 257 ((BIAS) == LCD_BIAS_1_3))
mbed_official 376:cb4d9db17537 258 /**
mbed_official 376:cb4d9db17537 259 * @}
mbed_official 376:cb4d9db17537 260 */
mbed_official 376:cb4d9db17537 261
mbed_official 376:cb4d9db17537 262 /** @defgroup LCD_Voltage_Source
mbed_official 376:cb4d9db17537 263 * @{
mbed_official 376:cb4d9db17537 264 */
mbed_official 376:cb4d9db17537 265
mbed_official 376:cb4d9db17537 266 #define LCD_VOLTAGESOURCE_INTERNAL ((uint32_t)0x00000000) /*!< Internal voltage source for the LCD */
mbed_official 376:cb4d9db17537 267 #define LCD_VOLTAGESOURCE_EXTERNAL LCD_CR_VSEL /*!< External voltage source for the LCD */
mbed_official 376:cb4d9db17537 268
mbed_official 376:cb4d9db17537 269 #define IS_LCD_VOLTAGE_SOURCE(SOURCE) (((SOURCE) == LCD_VOLTAGESOURCE_INTERNAL) || \
mbed_official 376:cb4d9db17537 270 ((SOURCE) == LCD_VOLTAGESOURCE_EXTERNAL))
mbed_official 376:cb4d9db17537 271
mbed_official 376:cb4d9db17537 272 /**
mbed_official 376:cb4d9db17537 273 * @}
mbed_official 376:cb4d9db17537 274 */
mbed_official 376:cb4d9db17537 275
mbed_official 376:cb4d9db17537 276 /** @defgroup LCD_Interrupts
mbed_official 376:cb4d9db17537 277 * @{
mbed_official 376:cb4d9db17537 278 */
mbed_official 376:cb4d9db17537 279 #define LCD_IT_SOF LCD_FCR_SOFIE
mbed_official 376:cb4d9db17537 280 #define LCD_IT_UDD LCD_FCR_UDDIE
mbed_official 376:cb4d9db17537 281
mbed_official 376:cb4d9db17537 282 #define IS_LCD_IT(IT) ((((IT) & (uint32_t)0xFFFFFFF5) == 0x00) && ((IT) != 0x00))
mbed_official 376:cb4d9db17537 283
mbed_official 376:cb4d9db17537 284 #define IS_LCD_GET_IT(IT) (((IT) == LCD_IT_SOF) || ((IT) == LCD_IT_UDD))
mbed_official 376:cb4d9db17537 285
mbed_official 376:cb4d9db17537 286 /**
mbed_official 376:cb4d9db17537 287 * @}
mbed_official 376:cb4d9db17537 288 */
mbed_official 376:cb4d9db17537 289
mbed_official 376:cb4d9db17537 290 /** @defgroup LCD_PulseOnDuration
mbed_official 376:cb4d9db17537 291 * @{
mbed_official 376:cb4d9db17537 292 */
mbed_official 376:cb4d9db17537 293
mbed_official 376:cb4d9db17537 294 #define LCD_PULSEONDURATION_0 ((uint32_t)0x00000000) /*!< Pulse ON duration = 0 pulse */
mbed_official 376:cb4d9db17537 295 #define LCD_PULSEONDURATION_1 ((uint32_t)0x00000010) /*!< Pulse ON duration = 1/CK_PS */
mbed_official 376:cb4d9db17537 296 #define LCD_PULSEONDURATION_2 ((uint32_t)0x00000020) /*!< Pulse ON duration = 2/CK_PS */
mbed_official 376:cb4d9db17537 297 #define LCD_PULSEONDURATION_3 ((uint32_t)0x00000030) /*!< Pulse ON duration = 3/CK_PS */
mbed_official 376:cb4d9db17537 298 #define LCD_PULSEONDURATION_4 ((uint32_t)0x00000040) /*!< Pulse ON duration = 4/CK_PS */
mbed_official 376:cb4d9db17537 299 #define LCD_PULSEONDURATION_5 ((uint32_t)0x00000050) /*!< Pulse ON duration = 5/CK_PS */
mbed_official 376:cb4d9db17537 300 #define LCD_PULSEONDURATION_6 ((uint32_t)0x00000060) /*!< Pulse ON duration = 6/CK_PS */
mbed_official 376:cb4d9db17537 301 #define LCD_PULSEONDURATION_7 ((uint32_t)0x00000070) /*!< Pulse ON duration = 7/CK_PS */
mbed_official 376:cb4d9db17537 302
mbed_official 376:cb4d9db17537 303 #define IS_LCD_PULSE_ON_DURATION(DURATION) (((DURATION) == LCD_PULSEONDURATION_0) || \
mbed_official 376:cb4d9db17537 304 ((DURATION) == LCD_PULSEONDURATION_1) || \
mbed_official 376:cb4d9db17537 305 ((DURATION) == LCD_PULSEONDURATION_2) || \
mbed_official 376:cb4d9db17537 306 ((DURATION) == LCD_PULSEONDURATION_3) || \
mbed_official 376:cb4d9db17537 307 ((DURATION) == LCD_PULSEONDURATION_4) || \
mbed_official 376:cb4d9db17537 308 ((DURATION) == LCD_PULSEONDURATION_5) || \
mbed_official 376:cb4d9db17537 309 ((DURATION) == LCD_PULSEONDURATION_6) || \
mbed_official 376:cb4d9db17537 310 ((DURATION) == LCD_PULSEONDURATION_7))
mbed_official 376:cb4d9db17537 311 /**
mbed_official 376:cb4d9db17537 312 * @}
mbed_official 376:cb4d9db17537 313 */
mbed_official 376:cb4d9db17537 314
mbed_official 376:cb4d9db17537 315
mbed_official 376:cb4d9db17537 316 /** @defgroup LCD_DeadTime
mbed_official 376:cb4d9db17537 317 * @{
mbed_official 376:cb4d9db17537 318 */
mbed_official 376:cb4d9db17537 319
mbed_official 376:cb4d9db17537 320 #define LCD_DEADTIME_0 ((uint32_t)0x00000000) /*!< No dead Time */
mbed_official 376:cb4d9db17537 321 #define LCD_DEADTIME_1 ((uint32_t)0x00000080) /*!< One Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 322 #define LCD_DEADTIME_2 ((uint32_t)0x00000100) /*!< Two Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 323 #define LCD_DEADTIME_3 ((uint32_t)0x00000180) /*!< Three Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 324 #define LCD_DEADTIME_4 ((uint32_t)0x00000200) /*!< Four Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 325 #define LCD_DEADTIME_5 ((uint32_t)0x00000280) /*!< Five Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 326 #define LCD_DEADTIME_6 ((uint32_t)0x00000300) /*!< Six Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 327 #define LCD_DEADTIME_7 ((uint32_t)0x00000380) /*!< Seven Phase between different couple of Frame */
mbed_official 376:cb4d9db17537 328
mbed_official 376:cb4d9db17537 329 #define IS_LCD_DEAD_TIME(TIME) (((TIME) == LCD_DEADTIME_0) || \
mbed_official 376:cb4d9db17537 330 ((TIME) == LCD_DEADTIME_1) || \
mbed_official 376:cb4d9db17537 331 ((TIME) == LCD_DEADTIME_2) || \
mbed_official 376:cb4d9db17537 332 ((TIME) == LCD_DEADTIME_3) || \
mbed_official 376:cb4d9db17537 333 ((TIME) == LCD_DEADTIME_4) || \
mbed_official 376:cb4d9db17537 334 ((TIME) == LCD_DEADTIME_5) || \
mbed_official 376:cb4d9db17537 335 ((TIME) == LCD_DEADTIME_6) || \
mbed_official 376:cb4d9db17537 336 ((TIME) == LCD_DEADTIME_7))
mbed_official 376:cb4d9db17537 337 /**
mbed_official 376:cb4d9db17537 338 * @}
mbed_official 376:cb4d9db17537 339 */
mbed_official 376:cb4d9db17537 340
mbed_official 376:cb4d9db17537 341 /** @defgroup LCD_BlinkMode
mbed_official 376:cb4d9db17537 342 * @{
mbed_official 376:cb4d9db17537 343 */
mbed_official 376:cb4d9db17537 344
mbed_official 376:cb4d9db17537 345 #define LCD_BLINKMODE_OFF ((uint32_t)0x00000000) /*!< Blink disabled */
mbed_official 376:cb4d9db17537 346 #define LCD_BLINKMODE_SEG0_COM0 ((uint32_t)0x00010000) /*!< Blink enabled on SEG[0], COM[0] (1 pixel) */
mbed_official 376:cb4d9db17537 347 #define LCD_BLINKMODE_SEG0_ALLCOM ((uint32_t)0x00020000) /*!< Blink enabled on SEG[0], all COM (up to
mbed_official 376:cb4d9db17537 348 8 pixels according to the programmed duty) */
mbed_official 376:cb4d9db17537 349 #define LCD_BLINKMODE_ALLSEG_ALLCOM ((uint32_t)0x00030000) /*!< Blink enabled on all SEG and all COM (all pixels) */
mbed_official 376:cb4d9db17537 350
mbed_official 376:cb4d9db17537 351 #define IS_LCD_BLINK_MODE(MODE) (((MODE) == LCD_BLINKMODE_OFF) || \
mbed_official 376:cb4d9db17537 352 ((MODE) == LCD_BLINKMODE_SEG0_COM0) || \
mbed_official 376:cb4d9db17537 353 ((MODE) == LCD_BLINKMODE_SEG0_ALLCOM) || \
mbed_official 376:cb4d9db17537 354 ((MODE) == LCD_BLINKMODE_ALLSEG_ALLCOM))
mbed_official 376:cb4d9db17537 355 /**
mbed_official 376:cb4d9db17537 356 * @}
mbed_official 376:cb4d9db17537 357 */
mbed_official 376:cb4d9db17537 358
mbed_official 376:cb4d9db17537 359 /** @defgroup LCD_BlinkFrequency
mbed_official 376:cb4d9db17537 360 * @{
mbed_official 376:cb4d9db17537 361 */
mbed_official 376:cb4d9db17537 362
mbed_official 376:cb4d9db17537 363 #define LCD_BLINKFREQUENCY_DIV8 ((uint32_t)0x00000000) /*!< The Blink frequency = fLCD/8 */
mbed_official 376:cb4d9db17537 364 #define LCD_BLINKFREQUENCY_DIV16 ((uint32_t)0x00002000) /*!< The Blink frequency = fLCD/16 */
mbed_official 376:cb4d9db17537 365 #define LCD_BLINKFREQUENCY_DIV32 ((uint32_t)0x00004000) /*!< The Blink frequency = fLCD/32 */
mbed_official 376:cb4d9db17537 366 #define LCD_BLINKFREQUENCY_DIV64 ((uint32_t)0x00006000) /*!< The Blink frequency = fLCD/64 */
mbed_official 376:cb4d9db17537 367 #define LCD_BLINKFREQUENCY_DIV128 ((uint32_t)0x00008000) /*!< The Blink frequency = fLCD/128 */
mbed_official 376:cb4d9db17537 368 #define LCD_BLINKFREQUENCY_DIV256 ((uint32_t)0x0000A000) /*!< The Blink frequency = fLCD/256 */
mbed_official 376:cb4d9db17537 369 #define LCD_BLINKFREQUENCY_DIV512 ((uint32_t)0x0000C000) /*!< The Blink frequency = fLCD/512 */
mbed_official 376:cb4d9db17537 370 #define LCD_BLINKFREQUENCY_DIV1024 ((uint32_t)0x0000E000) /*!< The Blink frequency = fLCD/1024 */
mbed_official 376:cb4d9db17537 371
mbed_official 376:cb4d9db17537 372 #define IS_LCD_BLINK_FREQUENCY(FREQUENCY) (((FREQUENCY) == LCD_BLINKFREQUENCY_DIV8) || \
mbed_official 376:cb4d9db17537 373 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV16) || \
mbed_official 376:cb4d9db17537 374 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV32) || \
mbed_official 376:cb4d9db17537 375 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV64) || \
mbed_official 376:cb4d9db17537 376 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV128) || \
mbed_official 376:cb4d9db17537 377 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV256) || \
mbed_official 376:cb4d9db17537 378 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV512) || \
mbed_official 376:cb4d9db17537 379 ((FREQUENCY) == LCD_BLINKFREQUENCY_DIV1024))
mbed_official 376:cb4d9db17537 380 /**
mbed_official 376:cb4d9db17537 381 * @}
mbed_official 376:cb4d9db17537 382 */
mbed_official 376:cb4d9db17537 383
mbed_official 376:cb4d9db17537 384 /** @defgroup LCD_Contrast
mbed_official 376:cb4d9db17537 385 * @{
mbed_official 376:cb4d9db17537 386 */
mbed_official 376:cb4d9db17537 387
mbed_official 376:cb4d9db17537 388 #define LCD_CONTRASTLEVEL_0 ((uint32_t)0x00000000) /*!< Maximum Voltage = 2.60V */
mbed_official 376:cb4d9db17537 389 #define LCD_CONTRASTLEVEL_1 ((uint32_t)0x00000400) /*!< Maximum Voltage = 2.73V */
mbed_official 376:cb4d9db17537 390 #define LCD_CONTRASTLEVEL_2 ((uint32_t)0x00000800) /*!< Maximum Voltage = 2.86V */
mbed_official 376:cb4d9db17537 391 #define LCD_CONTRASTLEVEL_3 ((uint32_t)0x00000C00) /*!< Maximum Voltage = 2.99V */
mbed_official 376:cb4d9db17537 392 #define LCD_CONTRASTLEVEL_4 ((uint32_t)0x00001000) /*!< Maximum Voltage = 3.12V */
mbed_official 376:cb4d9db17537 393 #define LCD_CONTRASTLEVEL_5 ((uint32_t)0x00001400) /*!< Maximum Voltage = 3.25V */
mbed_official 376:cb4d9db17537 394 #define LCD_CONTRASTLEVEL_6 ((uint32_t)0x00001800) /*!< Maximum Voltage = 3.38V */
mbed_official 376:cb4d9db17537 395 #define LCD_CONTRASTLEVEL_7 ((uint32_t)0x00001C00) /*!< Maximum Voltage = 3.51V */
mbed_official 376:cb4d9db17537 396
mbed_official 376:cb4d9db17537 397 #define IS_LCD_CONTRAST(CONTRAST) (((CONTRAST) == LCD_CONTRASTLEVEL_0) || \
mbed_official 376:cb4d9db17537 398 ((CONTRAST) == LCD_CONTRASTLEVEL_1) || \
mbed_official 376:cb4d9db17537 399 ((CONTRAST) == LCD_CONTRASTLEVEL_2) || \
mbed_official 376:cb4d9db17537 400 ((CONTRAST) == LCD_CONTRASTLEVEL_3) || \
mbed_official 376:cb4d9db17537 401 ((CONTRAST) == LCD_CONTRASTLEVEL_4) || \
mbed_official 376:cb4d9db17537 402 ((CONTRAST) == LCD_CONTRASTLEVEL_5) || \
mbed_official 376:cb4d9db17537 403 ((CONTRAST) == LCD_CONTRASTLEVEL_6) || \
mbed_official 376:cb4d9db17537 404 ((CONTRAST) == LCD_CONTRASTLEVEL_7))
mbed_official 376:cb4d9db17537 405 /**
mbed_official 376:cb4d9db17537 406 * @}
mbed_official 376:cb4d9db17537 407 */
mbed_official 376:cb4d9db17537 408
mbed_official 376:cb4d9db17537 409 /** @defgroup LCD_Flag
mbed_official 376:cb4d9db17537 410 * @{
mbed_official 376:cb4d9db17537 411 */
mbed_official 376:cb4d9db17537 412
mbed_official 376:cb4d9db17537 413 #define LCD_FLAG_ENS LCD_SR_ENS
mbed_official 376:cb4d9db17537 414 #define LCD_FLAG_SOF LCD_SR_SOF
mbed_official 376:cb4d9db17537 415 #define LCD_FLAG_UDR LCD_SR_UDR
mbed_official 376:cb4d9db17537 416 #define LCD_FLAG_UDD LCD_SR_UDD
mbed_official 376:cb4d9db17537 417 #define LCD_FLAG_RDY LCD_SR_RDY
mbed_official 376:cb4d9db17537 418 #define LCD_FLAG_FCRSF LCD_SR_FCRSR
mbed_official 376:cb4d9db17537 419
mbed_official 376:cb4d9db17537 420 #define IS_LCD_GET_FLAG(FLAG) (((FLAG) == LCD_FLAG_ENS) || ((FLAG) == LCD_FLAG_SOF) || \
mbed_official 376:cb4d9db17537 421 ((FLAG) == LCD_FLAG_UDR) || ((FLAG) == LCD_FLAG_UDD) || \
mbed_official 376:cb4d9db17537 422 ((FLAG) == LCD_FLAG_RDY) || ((FLAG) == LCD_FLAG_FCRSF))
mbed_official 376:cb4d9db17537 423
mbed_official 376:cb4d9db17537 424 #define IS_LCD_CLEAR_FLAG(FLAG) ((((FLAG) & (uint32_t)0xFFFFFFF5) == 0x00) && ((FLAG) != 0x00))
mbed_official 376:cb4d9db17537 425 /**
mbed_official 376:cb4d9db17537 426 * @}
mbed_official 376:cb4d9db17537 427 */
mbed_official 376:cb4d9db17537 428
mbed_official 376:cb4d9db17537 429 /** @defgroup LCD_RAMRegister
mbed_official 376:cb4d9db17537 430 * @{
mbed_official 376:cb4d9db17537 431 */
mbed_official 376:cb4d9db17537 432
mbed_official 376:cb4d9db17537 433 #define LCD_RAM_REGISTER0 ((uint32_t)0x00000000) /*!< LCD RAM Register 0 */
mbed_official 376:cb4d9db17537 434 #define LCD_RAM_REGISTER1 ((uint32_t)0x00000001) /*!< LCD RAM Register 1 */
mbed_official 376:cb4d9db17537 435 #define LCD_RAM_REGISTER2 ((uint32_t)0x00000002) /*!< LCD RAM Register 2 */
mbed_official 376:cb4d9db17537 436 #define LCD_RAM_REGISTER3 ((uint32_t)0x00000003) /*!< LCD RAM Register 3 */
mbed_official 376:cb4d9db17537 437 #define LCD_RAM_REGISTER4 ((uint32_t)0x00000004) /*!< LCD RAM Register 4 */
mbed_official 376:cb4d9db17537 438 #define LCD_RAM_REGISTER5 ((uint32_t)0x00000005) /*!< LCD RAM Register 5 */
mbed_official 376:cb4d9db17537 439 #define LCD_RAM_REGISTER6 ((uint32_t)0x00000006) /*!< LCD RAM Register 6 */
mbed_official 376:cb4d9db17537 440 #define LCD_RAM_REGISTER7 ((uint32_t)0x00000007) /*!< LCD RAM Register 7 */
mbed_official 376:cb4d9db17537 441 #define LCD_RAM_REGISTER8 ((uint32_t)0x00000008) /*!< LCD RAM Register 8 */
mbed_official 376:cb4d9db17537 442 #define LCD_RAM_REGISTER9 ((uint32_t)0x00000009) /*!< LCD RAM Register 9 */
mbed_official 376:cb4d9db17537 443 #define LCD_RAM_REGISTER10 ((uint32_t)0x0000000A) /*!< LCD RAM Register 10 */
mbed_official 376:cb4d9db17537 444 #define LCD_RAM_REGISTER11 ((uint32_t)0x0000000B) /*!< LCD RAM Register 11 */
mbed_official 376:cb4d9db17537 445 #define LCD_RAM_REGISTER12 ((uint32_t)0x0000000C) /*!< LCD RAM Register 12 */
mbed_official 376:cb4d9db17537 446 #define LCD_RAM_REGISTER13 ((uint32_t)0x0000000D) /*!< LCD RAM Register 13 */
mbed_official 376:cb4d9db17537 447 #define LCD_RAM_REGISTER14 ((uint32_t)0x0000000E) /*!< LCD RAM Register 14 */
mbed_official 376:cb4d9db17537 448 #define LCD_RAM_REGISTER15 ((uint32_t)0x0000000F) /*!< LCD RAM Register 15 */
mbed_official 376:cb4d9db17537 449
mbed_official 376:cb4d9db17537 450 #define IS_LCD_RAM_REGISTER(REGISTER) (((REGISTER) == LCD_RAM_REGISTER0) || \
mbed_official 376:cb4d9db17537 451 ((REGISTER) == LCD_RAM_REGISTER1) || \
mbed_official 376:cb4d9db17537 452 ((REGISTER) == LCD_RAM_REGISTER2) || \
mbed_official 376:cb4d9db17537 453 ((REGISTER) == LCD_RAM_REGISTER3) || \
mbed_official 376:cb4d9db17537 454 ((REGISTER) == LCD_RAM_REGISTER4) || \
mbed_official 376:cb4d9db17537 455 ((REGISTER) == LCD_RAM_REGISTER5) || \
mbed_official 376:cb4d9db17537 456 ((REGISTER) == LCD_RAM_REGISTER6) || \
mbed_official 376:cb4d9db17537 457 ((REGISTER) == LCD_RAM_REGISTER7) || \
mbed_official 376:cb4d9db17537 458 ((REGISTER) == LCD_RAM_REGISTER8) || \
mbed_official 376:cb4d9db17537 459 ((REGISTER) == LCD_RAM_REGISTER9) || \
mbed_official 376:cb4d9db17537 460 ((REGISTER) == LCD_RAM_REGISTER10) || \
mbed_official 376:cb4d9db17537 461 ((REGISTER) == LCD_RAM_REGISTER11) || \
mbed_official 376:cb4d9db17537 462 ((REGISTER) == LCD_RAM_REGISTER12) || \
mbed_official 376:cb4d9db17537 463 ((REGISTER) == LCD_RAM_REGISTER13) || \
mbed_official 376:cb4d9db17537 464 ((REGISTER) == LCD_RAM_REGISTER14) || \
mbed_official 376:cb4d9db17537 465 ((REGISTER) == LCD_RAM_REGISTER15))
mbed_official 376:cb4d9db17537 466
mbed_official 376:cb4d9db17537 467 /**
mbed_official 376:cb4d9db17537 468 * @}
mbed_official 376:cb4d9db17537 469 */
mbed_official 376:cb4d9db17537 470
mbed_official 376:cb4d9db17537 471 /**
mbed_official 376:cb4d9db17537 472 * @}
mbed_official 376:cb4d9db17537 473 */
mbed_official 376:cb4d9db17537 474
mbed_official 376:cb4d9db17537 475 /* Exported macro ------------------------------------------------------------*/
mbed_official 376:cb4d9db17537 476
mbed_official 376:cb4d9db17537 477 /** @defgroup LCD_Exported_Macros
mbed_official 376:cb4d9db17537 478 * @{
mbed_official 376:cb4d9db17537 479 */
mbed_official 376:cb4d9db17537 480
mbed_official 376:cb4d9db17537 481 /** @brief Reset LCD handle state
mbed_official 376:cb4d9db17537 482 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 483 * @retval None
mbed_official 376:cb4d9db17537 484 */
mbed_official 376:cb4d9db17537 485 #define __HAL_LCD_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LCD_STATE_RESET)
mbed_official 376:cb4d9db17537 486
mbed_official 376:cb4d9db17537 487 /** @brief macros to enables or disables the LCD
mbed_official 376:cb4d9db17537 488 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 489 * @retval None
mbed_official 376:cb4d9db17537 490 */
mbed_official 376:cb4d9db17537 491 #define __HAL_LCD_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR |= LCD_CR_LCDEN)
mbed_official 376:cb4d9db17537 492 #define __HAL_LCD_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR &= ~LCD_CR_LCDEN)
mbed_official 376:cb4d9db17537 493
mbed_official 376:cb4d9db17537 494 /** @brief Macros to enable or disable the low resistance divider. Displays with high
mbed_official 376:cb4d9db17537 495 * internal resistance may need a longer drive time to achieve
mbed_official 376:cb4d9db17537 496 * satisfactory contrast. This function is useful in this case if some
mbed_official 376:cb4d9db17537 497 * additional power consumption can be tolerated.
mbed_official 376:cb4d9db17537 498 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 499 * @note When this mode is enabled, the PulseOn Duration (PON) have to be
mbed_official 376:cb4d9db17537 500 * programmed to 1/CK_PS (LCD_PULSEONDURATION_1).
mbed_official 376:cb4d9db17537 501 * @retval None
mbed_official 376:cb4d9db17537 502 */
mbed_official 376:cb4d9db17537 503 #define __HAL_LCD_HIGHDRIVER_ENABLE(__HANDLE__) \
mbed_official 376:cb4d9db17537 504 do{ \
mbed_official 376:cb4d9db17537 505 ((__HANDLE__)->Instance->FCR |= LCD_FCR_HD); \
mbed_official 376:cb4d9db17537 506 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 507 }while(0)
mbed_official 376:cb4d9db17537 508
mbed_official 376:cb4d9db17537 509 #define __HAL_LCD_HIGHDRIVER_DISABLE(__HANDLE__) \
mbed_official 376:cb4d9db17537 510 do{ \
mbed_official 376:cb4d9db17537 511 ((__HANDLE__)->Instance->FCR &= ~LCD_FCR_HD); \
mbed_official 376:cb4d9db17537 512 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 513 }while(0)
mbed_official 376:cb4d9db17537 514 /**
mbed_official 376:cb4d9db17537 515 * @brief Macro to configure the LCD pulses on duration.
mbed_official 376:cb4d9db17537 516 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 517 * @param __DURATION__: specifies the LCD pulse on duration in terms of
mbed_official 376:cb4d9db17537 518 * CK_PS (prescaled LCD clock period) pulses.
mbed_official 376:cb4d9db17537 519 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 520 * @arg LCD_PULSEONDURATION_0: 0 pulse
mbed_official 376:cb4d9db17537 521 * @arg LCD_PULSEONDURATION_1: Pulse ON duration = 1/CK_PS
mbed_official 376:cb4d9db17537 522 * @arg LCD_PULSEONDURATION_2: Pulse ON duration = 2/CK_PS
mbed_official 376:cb4d9db17537 523 * @arg LCD_PULSEONDURATION_3: Pulse ON duration = 3/CK_PS
mbed_official 376:cb4d9db17537 524 * @arg LCD_PULSEONDURATION_4: Pulse ON duration = 4/CK_PS
mbed_official 376:cb4d9db17537 525 * @arg LCD_PULSEONDURATION_5: Pulse ON duration = 5/CK_PS
mbed_official 376:cb4d9db17537 526 * @arg LCD_PULSEONDURATION_6: Pulse ON duration = 6/CK_PS
mbed_official 376:cb4d9db17537 527 * @arg LCD_PULSEONDURATION_7: Pulse ON duration = 7/CK_PS
mbed_official 376:cb4d9db17537 528 * @retval None
mbed_official 376:cb4d9db17537 529 */
mbed_official 376:cb4d9db17537 530 #define __HAL_LCD_PULSEONDURATION_CONFIG(__HANDLE__, __DURATION__) \
mbed_official 376:cb4d9db17537 531 do{ \
mbed_official 376:cb4d9db17537 532 MODIFY_REG((__HANDLE__)->Instance->FCR, LCD_FCR_PON, (__DURATION__)); \
mbed_official 376:cb4d9db17537 533 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 534 }while(0)
mbed_official 376:cb4d9db17537 535
mbed_official 376:cb4d9db17537 536 /**
mbed_official 376:cb4d9db17537 537 * @brief Macro to configure the LCD dead time.
mbed_official 376:cb4d9db17537 538 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 539 * @param __DEADTIME__: specifies the LCD dead time.
mbed_official 376:cb4d9db17537 540 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 541 * @arg LCD_DEADTIME_0: No dead Time
mbed_official 376:cb4d9db17537 542 * @arg LCD_DEADTIME_1: One Phase between different couple of Frame
mbed_official 376:cb4d9db17537 543 * @arg LCD_DEADTIME_2: Two Phase between different couple of Frame
mbed_official 376:cb4d9db17537 544 * @arg LCD_DEADTIME_3: Three Phase between different couple of Frame
mbed_official 376:cb4d9db17537 545 * @arg LCD_DEADTIME_4: Four Phase between different couple of Frame
mbed_official 376:cb4d9db17537 546 * @arg LCD_DEADTIME_5: Five Phase between different couple of Frame
mbed_official 376:cb4d9db17537 547 * @arg LCD_DEADTIME_6: Six Phase between different couple of Frame
mbed_official 376:cb4d9db17537 548 * @arg LCD_DEADTIME_7: Seven Phase between different couple of Frame
mbed_official 376:cb4d9db17537 549 * @retval None
mbed_official 376:cb4d9db17537 550 */
mbed_official 376:cb4d9db17537 551 #define __HAL_LCD_DEADTIME_CONFIG(__HANDLE__, __DEADTIME__) \
mbed_official 376:cb4d9db17537 552 do{ \
mbed_official 376:cb4d9db17537 553 MODIFY_REG((__HANDLE__)->Instance->FCR, LCD_FCR_DEAD, (__DEADTIME__)); \
mbed_official 376:cb4d9db17537 554 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 555 }while(0)
mbed_official 376:cb4d9db17537 556
mbed_official 376:cb4d9db17537 557 /**
mbed_official 376:cb4d9db17537 558 * @brief Macro to configure the LCD Contrast.
mbed_official 376:cb4d9db17537 559 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 560 * @param __CONTRAST__: specifies the LCD Contrast.
mbed_official 376:cb4d9db17537 561 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 562 * @arg LCD_CONTRASTLEVEL_0: Maximum Voltage = 2.60V
mbed_official 376:cb4d9db17537 563 * @arg LCD_CONTRASTLEVEL_1: Maximum Voltage = 2.73V
mbed_official 376:cb4d9db17537 564 * @arg LCD_CONTRASTLEVEL_2: Maximum Voltage = 2.86V
mbed_official 376:cb4d9db17537 565 * @arg LCD_CONTRASTLEVEL_3: Maximum Voltage = 2.99V
mbed_official 376:cb4d9db17537 566 * @arg LCD_CONTRASTLEVEL_4: Maximum Voltage = 3.12V
mbed_official 376:cb4d9db17537 567 * @arg LCD_CONTRASTLEVEL_5: Maximum Voltage = 3.25V
mbed_official 376:cb4d9db17537 568 * @arg LCD_CONTRASTLEVEL_6: Maximum Voltage = 3.38V
mbed_official 376:cb4d9db17537 569 * @arg LCD_CONTRASTLEVEL_7: Maximum Voltage = 3.51V
mbed_official 376:cb4d9db17537 570 * @retval None
mbed_official 376:cb4d9db17537 571 */
mbed_official 376:cb4d9db17537 572 #define __HAL_LCD_CONTRAST_CONFIG(__HANDLE__, __CONTRAST__) \
mbed_official 376:cb4d9db17537 573 do{ \
mbed_official 376:cb4d9db17537 574 MODIFY_REG((__HANDLE__)->Instance->FCR, LCD_FCR_CC, (__CONTRAST__)); \
mbed_official 376:cb4d9db17537 575 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 576 } while(0)
mbed_official 376:cb4d9db17537 577 /**
mbed_official 376:cb4d9db17537 578 * @brief Macro to configure the LCD Blink mode and Blink frequency.
mbed_official 376:cb4d9db17537 579 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 580 * @param __BLINKMODE__: specifies the LCD blink mode.
mbed_official 376:cb4d9db17537 581 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 582 * @arg LCD_BLINKMODE_OFF: Blink disabled
mbed_official 376:cb4d9db17537 583 * @arg LCD_BLINKMODE_SEG0_COM0: Blink enabled on SEG[0], COM[0] (1 pixel)
mbed_official 376:cb4d9db17537 584 * @arg LCD_BLINKMODE_SEG0_ALLCOM: Blink enabled on SEG[0], all COM (up to 8
mbed_official 376:cb4d9db17537 585 * pixels according to the programmed duty)
mbed_official 376:cb4d9db17537 586 * @arg LCD_BLINKMODE_ALLSEG_ALLCOM: Blink enabled on all SEG and all COM
mbed_official 376:cb4d9db17537 587 * (all pixels)
mbed_official 376:cb4d9db17537 588 * @param __BLINKFREQUENCY__: specifies the LCD blink frequency.
mbed_official 376:cb4d9db17537 589 * @arg LCD_BLINKFREQUENCY_DIV8: The Blink frequency = fLcd/8
mbed_official 376:cb4d9db17537 590 * @arg LCD_BLINKFREQUENCY_DIV16: The Blink frequency = fLcd/16
mbed_official 376:cb4d9db17537 591 * @arg LCD_BLINKFREQUENCY_DIV32: The Blink frequency = fLcd/32
mbed_official 376:cb4d9db17537 592 * @arg LCD_BLINKFREQUENCY_DIV64: The Blink frequency = fLcd/64
mbed_official 376:cb4d9db17537 593 * @arg LCD_BLINKFREQUENCY_DIV128: The Blink frequency = fLcd/128
mbed_official 376:cb4d9db17537 594 * @arg LCD_BLINKFREQUENCY_DIV256: The Blink frequency = fLcd/256
mbed_official 376:cb4d9db17537 595 * @arg LCD_BLINKFREQUENCY_DIV512: The Blink frequency = fLcd/512
mbed_official 376:cb4d9db17537 596 * @arg LCD_BLINKFREQUENCY_DIV1024: The Blink frequency = fLcd/1024
mbed_official 376:cb4d9db17537 597 * @retval None
mbed_official 376:cb4d9db17537 598 */
mbed_official 376:cb4d9db17537 599 #define __HAL_LCD_BLINK_CONFIG(__HANDLE__, __BLINKMODE__, __BLINKFREQUENCY__) \
mbed_official 376:cb4d9db17537 600 do{ \
mbed_official 376:cb4d9db17537 601 MODIFY_REG((__HANDLE__)->Instance->FCR, (LCD_FCR_BLINKF | LCD_FCR_BLINK), ((__BLINKMODE__) | (__BLINKFREQUENCY__))); \
mbed_official 376:cb4d9db17537 602 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 603 }while(0)
mbed_official 376:cb4d9db17537 604
mbed_official 376:cb4d9db17537 605 /** @brief Enables or disables the specified LCD interrupt.
mbed_official 376:cb4d9db17537 606 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 607 * @param __INTERRUPT__: specifies the LCD interrupt source to be enabled or disabled.
mbed_official 376:cb4d9db17537 608 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 609 * @arg LCD_IT_SOF: Start of Frame Interrupt
mbed_official 376:cb4d9db17537 610 * @arg LCD_IT_UDD: Update Display Done Interrupt
mbed_official 376:cb4d9db17537 611 * @retval None
mbed_official 376:cb4d9db17537 612 */
mbed_official 376:cb4d9db17537 613 #define __HAL_LCD_ENABLE_IT(__HANDLE__, __INTERRUPT__) \
mbed_official 376:cb4d9db17537 614 do{ \
mbed_official 376:cb4d9db17537 615 ((__HANDLE__)->Instance->FCR |= (__INTERRUPT__)); \
mbed_official 376:cb4d9db17537 616 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 617 }while(0)
mbed_official 376:cb4d9db17537 618 #define __HAL_LCD_DISABLE_IT(__HANDLE__, __INTERRUPT__) \
mbed_official 376:cb4d9db17537 619 do{ \
mbed_official 376:cb4d9db17537 620 ((__HANDLE__)->Instance->FCR &= ~(__INTERRUPT__));\
mbed_official 376:cb4d9db17537 621 LCD_WaitForSynchro(__HANDLE__); \
mbed_official 376:cb4d9db17537 622 }while(0)
mbed_official 376:cb4d9db17537 623 /** @brief Checks whether the specified LCD interrupt is enabled or not.
mbed_official 376:cb4d9db17537 624 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 625 * @param __IT__: specifies the LCD interrupt source to check.
mbed_official 376:cb4d9db17537 626 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 627 * @arg LCD_IT_SOF: Start of Frame Interrupt
mbed_official 376:cb4d9db17537 628 * @arg LCD_IT_UDD: Update Display Done Interrupt.
mbed_official 376:cb4d9db17537 629 * @note If the device is in STOP mode (PCLK not provided) UDD will not
mbed_official 376:cb4d9db17537 630 * generate an interrupt even if UDDIE = 1.
mbed_official 376:cb4d9db17537 631 * If the display is not enabled the UDD interrupt will never occur.
mbed_official 376:cb4d9db17537 632 * @retval The state of __IT__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 633 */
mbed_official 376:cb4d9db17537 634 #define __HAL_LCD_GET_IT_SOURCE(__HANDLE__, __IT__) (((__HANDLE__)->Instance->FCR) & (__IT__))
mbed_official 376:cb4d9db17537 635
mbed_official 376:cb4d9db17537 636 /** @brief Checks whether the specified LCD flag is set or not.
mbed_official 376:cb4d9db17537 637 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 638 * @param __FLAG__: specifies the flag to check.
mbed_official 376:cb4d9db17537 639 * This parameter can be one of the following values:
mbed_official 376:cb4d9db17537 640 * @arg LCD_FLAG_ENS: LCD Enabled flag. It indicates the LCD controller status.
mbed_official 376:cb4d9db17537 641 * @note The ENS bit is set immediately when the LCDEN bit in the LCD_CR
mbed_official 376:cb4d9db17537 642 * goes from 0 to 1. On deactivation it reflects the real status of
mbed_official 376:cb4d9db17537 643 * LCD so it becomes 0 at the end of the last displayed frame.
mbed_official 376:cb4d9db17537 644 * @arg LCD_FLAG_SOF: Start of Frame flag. This flag is set by hardware at
mbed_official 376:cb4d9db17537 645 * the beginning of a new frame, at the same time as the display data is
mbed_official 376:cb4d9db17537 646 * updated.
mbed_official 376:cb4d9db17537 647 * @arg LCD_FLAG_UDR: Update Display Request flag.
mbed_official 376:cb4d9db17537 648 * @arg LCD_FLAG_UDD: Update Display Done flag.
mbed_official 376:cb4d9db17537 649 * @arg LCD_FLAG_RDY: Step_up converter Ready flag. It indicates the status
mbed_official 376:cb4d9db17537 650 * of the step-up converter.
mbed_official 376:cb4d9db17537 651 * @arg LCD_FLAG_FCRSF: LCD Frame Control Register Synchronization Flag.
mbed_official 376:cb4d9db17537 652 * This flag is set by hardware each time the LCD_FCR register is updated
mbed_official 376:cb4d9db17537 653 * in the LCDCLK domain.
mbed_official 376:cb4d9db17537 654 * @retval The new state of __FLAG__ (TRUE or FALSE).
mbed_official 376:cb4d9db17537 655 */
mbed_official 376:cb4d9db17537 656 #define __HAL_LCD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__))
mbed_official 376:cb4d9db17537 657
mbed_official 376:cb4d9db17537 658 /** @brief Clears the specified LCD pending flag.
mbed_official 376:cb4d9db17537 659 * @param __HANDLE__: specifies the LCD Handle.
mbed_official 376:cb4d9db17537 660 * @param __FLAG__: specifies the flag to check.
mbed_official 376:cb4d9db17537 661 * This parameter can be any combination of the following values:
mbed_official 376:cb4d9db17537 662 * @arg LCD_FLAG_SOF: Start of Frame Interrupt
mbed_official 376:cb4d9db17537 663 * @arg LCD_FLAG_UDD: Update Display Done Interrupt
mbed_official 376:cb4d9db17537 664 * @retval None
mbed_official 376:cb4d9db17537 665 */
mbed_official 376:cb4d9db17537 666 #define __HAL_LCD_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->CLR = (__FLAG__))
mbed_official 376:cb4d9db17537 667
mbed_official 376:cb4d9db17537 668 /**
mbed_official 376:cb4d9db17537 669 * @}
mbed_official 376:cb4d9db17537 670 */
mbed_official 376:cb4d9db17537 671
mbed_official 376:cb4d9db17537 672 /* Exported functions ------------------------------------------------------- */
mbed_official 376:cb4d9db17537 673 /* Initialization/de-initialization methods **********************************/
mbed_official 376:cb4d9db17537 674 HAL_StatusTypeDef HAL_LCD_DeInit(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 675 HAL_StatusTypeDef HAL_LCD_Init(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 676 void HAL_LCD_MspInit(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 677 void HAL_LCD_MspDeInit(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 678
mbed_official 376:cb4d9db17537 679 /* IO operation methods *******************************************************/
mbed_official 376:cb4d9db17537 680 HAL_StatusTypeDef HAL_LCD_Write(LCD_HandleTypeDef *hlcd, uint32_t RAMRegisterIndex, uint32_t RAMRegisterMask, uint32_t Data);
mbed_official 376:cb4d9db17537 681 HAL_StatusTypeDef HAL_LCD_Clear(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 682 HAL_StatusTypeDef HAL_LCD_UpdateDisplayRequest(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 683
mbed_official 376:cb4d9db17537 684 /* Peripheral State methods **************************************************/
mbed_official 376:cb4d9db17537 685 HAL_LCD_StateTypeDef HAL_LCD_GetState(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 686 uint32_t HAL_LCD_GetError(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 687
mbed_official 376:cb4d9db17537 688 /* Private functions ---------------------------------------------------------*/
mbed_official 376:cb4d9db17537 689 HAL_StatusTypeDef LCD_WaitForSynchro(LCD_HandleTypeDef *hlcd);
mbed_official 376:cb4d9db17537 690
mbed_official 376:cb4d9db17537 691 #endif /* STM32L051xx && STM32L052xx && STM32L062xx && STM32L061xx*/
mbed_official 376:cb4d9db17537 692
mbed_official 376:cb4d9db17537 693 #ifdef __cplusplus
mbed_official 376:cb4d9db17537 694 }
mbed_official 376:cb4d9db17537 695 #endif
mbed_official 376:cb4d9db17537 696
mbed_official 376:cb4d9db17537 697 #endif /* __STM32L0xx_HAL_LCD_H */
mbed_official 376:cb4d9db17537 698
mbed_official 376:cb4d9db17537 699 /**
mbed_official 376:cb4d9db17537 700 * @}
mbed_official 376:cb4d9db17537 701 */
mbed_official 376:cb4d9db17537 702
mbed_official 376:cb4d9db17537 703 /**
mbed_official 376:cb4d9db17537 704 * @}
mbed_official 376:cb4d9db17537 705 */
mbed_official 376:cb4d9db17537 706
mbed_official 376:cb4d9db17537 707 /******************* (C) COPYRIGHT 2014 STMicroelectronics *****END OF FILE****/