AudioRecord

Dependencies:   STM32L4xx_HAL_Driver CMSIS_DSP_401

Committer:
EricLew
Date:
Thu Nov 26 22:32:56 2015 +0000
Revision:
3:ec7e3c37fe80
Parent:
0:d4e5ad7ad71c
FFT is currently not working and commented out

Who changed what in which revision?

UserRevisionLine numberNew contents of line
EricLew 0:d4e5ad7ad71c 1 /**
EricLew 0:d4e5ad7ad71c 2 ******************************************************************************
EricLew 0:d4e5ad7ad71c 3 * @file stm32l476g_discovery_glass_lcd.h
EricLew 0:d4e5ad7ad71c 4 * @author MCD Application Team
EricLew 0:d4e5ad7ad71c 5 * @version V1.0.1
EricLew 0:d4e5ad7ad71c 6 * @date 16-September-2015
EricLew 0:d4e5ad7ad71c 7 * @brief Header file for stm32l476g_discovery_glass_lcd.c module.
EricLew 0:d4e5ad7ad71c 8 ******************************************************************************
EricLew 0:d4e5ad7ad71c 9 * @attention
EricLew 0:d4e5ad7ad71c 10 *
EricLew 0:d4e5ad7ad71c 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
EricLew 0:d4e5ad7ad71c 12 *
EricLew 0:d4e5ad7ad71c 13 * Redistribution and use in source and binary forms, with or without modification,
EricLew 0:d4e5ad7ad71c 14 * are permitted provided that the following conditions are met:
EricLew 0:d4e5ad7ad71c 15 * 1. Redistributions of source code must retain the above copyright notice,
EricLew 0:d4e5ad7ad71c 16 * this list of conditions and the following disclaimer.
EricLew 0:d4e5ad7ad71c 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
EricLew 0:d4e5ad7ad71c 18 * this list of conditions and the following disclaimer in the documentation
EricLew 0:d4e5ad7ad71c 19 * and/or other materials provided with the distribution.
EricLew 0:d4e5ad7ad71c 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
EricLew 0:d4e5ad7ad71c 21 * may be used to endorse or promote products derived from this software
EricLew 0:d4e5ad7ad71c 22 * without specific prior written permission.
EricLew 0:d4e5ad7ad71c 23 *
EricLew 0:d4e5ad7ad71c 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
EricLew 0:d4e5ad7ad71c 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
EricLew 0:d4e5ad7ad71c 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
EricLew 0:d4e5ad7ad71c 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
EricLew 0:d4e5ad7ad71c 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
EricLew 0:d4e5ad7ad71c 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
EricLew 0:d4e5ad7ad71c 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
EricLew 0:d4e5ad7ad71c 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
EricLew 0:d4e5ad7ad71c 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
EricLew 0:d4e5ad7ad71c 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
EricLew 0:d4e5ad7ad71c 34 *
EricLew 0:d4e5ad7ad71c 35 ******************************************************************************
EricLew 0:d4e5ad7ad71c 36 */
EricLew 0:d4e5ad7ad71c 37
EricLew 0:d4e5ad7ad71c 38 /* Define to prevent recursive inclusion -------------------------------------*/
EricLew 0:d4e5ad7ad71c 39 #ifndef __STM32L476G_DISCOVERY_GLASS_LCD_H
EricLew 0:d4e5ad7ad71c 40 #define __STM32L476G_DISCOVERY_GLASS_LCD_H
EricLew 0:d4e5ad7ad71c 41
EricLew 0:d4e5ad7ad71c 42 #ifdef __cplusplus
EricLew 0:d4e5ad7ad71c 43 extern "C" {
EricLew 0:d4e5ad7ad71c 44 #endif
EricLew 0:d4e5ad7ad71c 45
EricLew 0:d4e5ad7ad71c 46 /* Includes ------------------------------------------------------------------*/
EricLew 0:d4e5ad7ad71c 47 #include "stm32l476g_discovery.h"
EricLew 0:d4e5ad7ad71c 48
EricLew 0:d4e5ad7ad71c 49 /** @addtogroup BSP
EricLew 0:d4e5ad7ad71c 50 * @{
EricLew 0:d4e5ad7ad71c 51 */
EricLew 0:d4e5ad7ad71c 52
EricLew 0:d4e5ad7ad71c 53 /** @addtogroup STM32L476G_DISCOVERY
EricLew 0:d4e5ad7ad71c 54 * @{
EricLew 0:d4e5ad7ad71c 55 */
EricLew 0:d4e5ad7ad71c 56
EricLew 0:d4e5ad7ad71c 57 /** @addtogroup STM32L476G_DISCOVERY_GLASS_LCD
EricLew 0:d4e5ad7ad71c 58 * @{
EricLew 0:d4e5ad7ad71c 59 */
EricLew 0:d4e5ad7ad71c 60
EricLew 0:d4e5ad7ad71c 61 /* Exported types ------------------------------------------------------------*/
EricLew 0:d4e5ad7ad71c 62
EricLew 0:d4e5ad7ad71c 63 /** @defgroup STM32L476G_DISCOVERY_GLASS_LCD_Exported_Types Exported Types
EricLew 0:d4e5ad7ad71c 64 * @{
EricLew 0:d4e5ad7ad71c 65 */
EricLew 0:d4e5ad7ad71c 66 /**
EricLew 0:d4e5ad7ad71c 67 * @brief LCD Glass digit position
EricLew 0:d4e5ad7ad71c 68 */
EricLew 0:d4e5ad7ad71c 69 typedef enum
EricLew 0:d4e5ad7ad71c 70 {
EricLew 0:d4e5ad7ad71c 71 LCD_DIGIT_POSITION_1 = 0,
EricLew 0:d4e5ad7ad71c 72 LCD_DIGIT_POSITION_2 = 1,
EricLew 0:d4e5ad7ad71c 73 LCD_DIGIT_POSITION_3 = 2,
EricLew 0:d4e5ad7ad71c 74 LCD_DIGIT_POSITION_4 = 3,
EricLew 0:d4e5ad7ad71c 75 LCD_DIGIT_POSITION_5 = 4,
EricLew 0:d4e5ad7ad71c 76 LCD_DIGIT_POSITION_6 = 5,
EricLew 0:d4e5ad7ad71c 77 LCD_DIGIT_MAX_NUMBER = 6,
EricLew 0:d4e5ad7ad71c 78 }DigitPosition_Typedef;
EricLew 0:d4e5ad7ad71c 79 /**
EricLew 0:d4e5ad7ad71c 80 * @brief LCD Glass point
EricLew 0:d4e5ad7ad71c 81 * Warning: element values correspond to LCD Glass point.
EricLew 0:d4e5ad7ad71c 82 */
EricLew 0:d4e5ad7ad71c 83
EricLew 0:d4e5ad7ad71c 84 typedef enum
EricLew 0:d4e5ad7ad71c 85 {
EricLew 0:d4e5ad7ad71c 86 POINT_OFF = 0,
EricLew 0:d4e5ad7ad71c 87 POINT_ON = 1
EricLew 0:d4e5ad7ad71c 88 }Point_Typedef;
EricLew 0:d4e5ad7ad71c 89
EricLew 0:d4e5ad7ad71c 90 /**
EricLew 0:d4e5ad7ad71c 91 * @brief LCD Glass Double point
EricLew 0:d4e5ad7ad71c 92 * Warning: element values correspond to LCD Glass Double point.
EricLew 0:d4e5ad7ad71c 93 */
EricLew 0:d4e5ad7ad71c 94 typedef enum
EricLew 0:d4e5ad7ad71c 95 {
EricLew 0:d4e5ad7ad71c 96 DOUBLEPOINT_OFF = 0,
EricLew 0:d4e5ad7ad71c 97 DOUBLEPOINT_ON = 1
EricLew 0:d4e5ad7ad71c 98 }DoublePoint_Typedef;
EricLew 0:d4e5ad7ad71c 99
EricLew 0:d4e5ad7ad71c 100 /**
EricLew 0:d4e5ad7ad71c 101 * @brief LCD Glass Battery Level
EricLew 0:d4e5ad7ad71c 102 * element values correspond to different LCD Glass battery levels
EricLew 0:d4e5ad7ad71c 103 */
EricLew 0:d4e5ad7ad71c 104 typedef enum
EricLew 0:d4e5ad7ad71c 105 {
EricLew 0:d4e5ad7ad71c 106 BATTERYLEVEL_OFF = 0,
EricLew 0:d4e5ad7ad71c 107 BATTERYLEVEL_1_4 = 1,
EricLew 0:d4e5ad7ad71c 108 BATTERYLEVEL_1_2 = 2,
EricLew 0:d4e5ad7ad71c 109 BATTERYLEVEL_3_4 = 3,
EricLew 0:d4e5ad7ad71c 110 BATTERYLEVEL_FULL = 4
EricLew 0:d4e5ad7ad71c 111 }BatteryLevel_Typedef;
EricLew 0:d4e5ad7ad71c 112
EricLew 0:d4e5ad7ad71c 113 /**
EricLew 0:d4e5ad7ad71c 114 * @brief LCD Glass Bar Id
EricLew 0:d4e5ad7ad71c 115 */
EricLew 0:d4e5ad7ad71c 116 typedef enum
EricLew 0:d4e5ad7ad71c 117 {
EricLew 0:d4e5ad7ad71c 118 LCD_BAR_NONE = 0,
EricLew 0:d4e5ad7ad71c 119 LCD_BAR_0 = (1 << 0),
EricLew 0:d4e5ad7ad71c 120 LCD_BAR_1 = (1 << 1),
EricLew 0:d4e5ad7ad71c 121 LCD_BAR_2 = (1 << 2),
EricLew 0:d4e5ad7ad71c 122 LCD_BAR_3 = (1 << 3)
EricLew 0:d4e5ad7ad71c 123 }BarId_Typedef;
EricLew 0:d4e5ad7ad71c 124 /**
EricLew 0:d4e5ad7ad71c 125 * @}
EricLew 0:d4e5ad7ad71c 126 */
EricLew 0:d4e5ad7ad71c 127
EricLew 0:d4e5ad7ad71c 128 /** @defgroup STM32L476G_DISCOVERY_GLASS_LCD_Exported_Constants Exported Constants
EricLew 0:d4e5ad7ad71c 129 * @{
EricLew 0:d4e5ad7ad71c 130 */
EricLew 0:d4e5ad7ad71c 131 /**
EricLew 0:d4e5ad7ad71c 132 * @brief LCD digit defintion
EricLew 0:d4e5ad7ad71c 133 */
EricLew 0:d4e5ad7ad71c 134 #define COM_PER_DIGIT_NB 4/*!< Specifies number of COM to address a digit */
EricLew 0:d4e5ad7ad71c 135 #define SEG_PER_DIGIT_NB 4/*!< Specifies number of SEG to address a digit */
EricLew 0:d4e5ad7ad71c 136
EricLew 0:d4e5ad7ad71c 137 #define LCD_MAP_CHAR_COM0_SEG_1ST_POS (1 << LCD_MAP_CHAR_COM0_SEG_1ST_SHIFT)
EricLew 0:d4e5ad7ad71c 138 #define LCD_MAP_CHAR_COM0_SEG_2ND_POS (1 << LCD_MAP_CHAR_COM0_SEG_2ND_SHIFT)
EricLew 0:d4e5ad7ad71c 139 #define LCD_MAP_CHAR_COM0_SEG_3RD_POS (1 << LCD_MAP_CHAR_COM0_SEG_3RD_SHIFT)
EricLew 0:d4e5ad7ad71c 140 #define LCD_MAP_CHAR_COM0_SEG_4TH_POS (1 << LCD_MAP_CHAR_COM0_SEG_4TH_SHIFT)
EricLew 0:d4e5ad7ad71c 141 #define LCD_MAP_CHAR_COM1_SEG_1ST_POS (1 << LCD_MAP_CHAR_COM1_SEG_1ST_SHIFT)
EricLew 0:d4e5ad7ad71c 142 #define LCD_MAP_CHAR_COM1_SEG_2ND_POS (1 << LCD_MAP_CHAR_COM1_SEG_2ND_SHIFT)
EricLew 0:d4e5ad7ad71c 143 #define LCD_MAP_CHAR_COM1_SEG_3RD_POS (1 << LCD_MAP_CHAR_COM1_SEG_3RD_SHIFT)
EricLew 0:d4e5ad7ad71c 144 #define LCD_MAP_CHAR_COM1_SEG_4TH_POS (1 << LCD_MAP_CHAR_COM1_SEG_4TH_SHIFT)
EricLew 0:d4e5ad7ad71c 145 #define LCD_MAP_CHAR_COM2_SEG_1ST_POS (1 << LCD_MAP_CHAR_COM2_SEG_1ST_SHIFT)
EricLew 0:d4e5ad7ad71c 146 #define LCD_MAP_CHAR_COM2_SEG_2ND_POS (1 << LCD_MAP_CHAR_COM2_SEG_2ND_SHIFT)
EricLew 0:d4e5ad7ad71c 147 #define LCD_MAP_CHAR_COM2_SEG_3RD_POS (1 << LCD_MAP_CHAR_COM2_SEG_3RD_SHIFT)
EricLew 0:d4e5ad7ad71c 148 #define LCD_MAP_CHAR_COM2_SEG_4TH_POS (1 << LCD_MAP_CHAR_COM2_SEG_4TH_SHIFT)
EricLew 0:d4e5ad7ad71c 149 #define LCD_MAP_CHAR_COM3_SEG_1ST_POS (1 << LCD_MAP_CHAR_COM3_SEG_1ST_SHIFT)
EricLew 0:d4e5ad7ad71c 150 #define LCD_MAP_CHAR_COM3_SEG_2ND_POS (1 << LCD_MAP_CHAR_COM3_SEG_2ND_SHIFT)
EricLew 0:d4e5ad7ad71c 151 #define LCD_MAP_CHAR_COM3_SEG_3RD_POS (1 << LCD_MAP_CHAR_COM3_SEG_3RD_SHIFT)
EricLew 0:d4e5ad7ad71c 152 #define LCD_MAP_CHAR_COM3_SEG_4TH_POS (1 << LCD_MAP_CHAR_COM3_SEG_4TH_SHIFT)
EricLew 0:d4e5ad7ad71c 153 #define LCD_MAP_CHAR_COM0_SEG_1ST_SHIFT 0x00000000
EricLew 0:d4e5ad7ad71c 154 #define LCD_MAP_CHAR_COM0_SEG_2ND_SHIFT 0x00000001
EricLew 0:d4e5ad7ad71c 155 #define LCD_MAP_CHAR_COM0_SEG_3RD_SHIFT 0x00000002
EricLew 0:d4e5ad7ad71c 156 #define LCD_MAP_CHAR_COM0_SEG_4TH_SHIFT 0x00000003
EricLew 0:d4e5ad7ad71c 157 #define LCD_MAP_CHAR_COM1_SEG_1ST_SHIFT 0x00000004
EricLew 0:d4e5ad7ad71c 158 #define LCD_MAP_CHAR_COM1_SEG_2ND_SHIFT 0x00000005
EricLew 0:d4e5ad7ad71c 159 #define LCD_MAP_CHAR_COM1_SEG_3RD_SHIFT 0x00000006
EricLew 0:d4e5ad7ad71c 160 #define LCD_MAP_CHAR_COM1_SEG_4TH_SHIFT 0x00000007
EricLew 0:d4e5ad7ad71c 161 #define LCD_MAP_CHAR_COM2_SEG_1ST_SHIFT 0x00000008
EricLew 0:d4e5ad7ad71c 162 #define LCD_MAP_CHAR_COM2_SEG_2ND_SHIFT 0x00000009
EricLew 0:d4e5ad7ad71c 163 #define LCD_MAP_CHAR_COM2_SEG_3RD_SHIFT 0x00000010
EricLew 0:d4e5ad7ad71c 164 #define LCD_MAP_CHAR_COM2_SEG_4TH_SHIFT 0x00000011
EricLew 0:d4e5ad7ad71c 165 #define LCD_MAP_CHAR_COM3_SEG_1ST_SHIFT 0x00000012
EricLew 0:d4e5ad7ad71c 166 #define LCD_MAP_CHAR_COM3_SEG_2ND_SHIFT 0x00000013
EricLew 0:d4e5ad7ad71c 167 #define LCD_MAP_CHAR_COM3_SEG_3RD_SHIFT 0x00000014
EricLew 0:d4e5ad7ad71c 168 #define LCD_MAP_CHAR_COM3_SEG_4TH_SHIFT 0x00000015
EricLew 0:d4e5ad7ad71c 169
EricLew 0:d4e5ad7ad71c 170 /**
EricLew 0:d4e5ad7ad71c 171 * @brief LCD Digit defines
EricLew 0:d4e5ad7ad71c 172 */
EricLew 0:d4e5ad7ad71c 173 #define LCD_DIGIT1_COM0 LCD_COM0
EricLew 0:d4e5ad7ad71c 174 #define LCD_DIGIT1_COM0_SEG_MASK ~(LCD_SEG0 | LCD_SEG1 | LCD_SEG22 | LCD_SEG23)
EricLew 0:d4e5ad7ad71c 175 #define LCD_DIGIT1_COM1 LCD_COM1
EricLew 0:d4e5ad7ad71c 176 #define LCD_DIGIT1_COM1_SEG_MASK ~(LCD_SEG0 | LCD_SEG1 | LCD_SEG22 | LCD_SEG23)
EricLew 0:d4e5ad7ad71c 177 #define LCD_DIGIT1_COM2 LCD_COM2
EricLew 0:d4e5ad7ad71c 178 #define LCD_DIGIT1_COM2_SEG_MASK ~(LCD_SEG0 | LCD_SEG1 | LCD_SEG22 | LCD_SEG23)
EricLew 0:d4e5ad7ad71c 179 #define LCD_DIGIT1_COM3 LCD_COM3
EricLew 0:d4e5ad7ad71c 180 #define LCD_DIGIT1_COM3_SEG_MASK ~(LCD_SEG0 | LCD_SEG1 | LCD_SEG22 | LCD_SEG23)
EricLew 0:d4e5ad7ad71c 181
EricLew 0:d4e5ad7ad71c 182 #define LCD_DIGIT2_COM0 LCD_COM0
EricLew 0:d4e5ad7ad71c 183 #define LCD_DIGIT2_COM0_SEG_MASK ~(LCD_SEG2 | LCD_SEG3 | LCD_SEG20 | LCD_SEG21)
EricLew 0:d4e5ad7ad71c 184 #define LCD_DIGIT2_COM1 LCD_COM1
EricLew 0:d4e5ad7ad71c 185 #define LCD_DIGIT2_COM1_SEG_MASK ~(LCD_SEG2 | LCD_SEG3 | LCD_SEG20 | LCD_SEG21)
EricLew 0:d4e5ad7ad71c 186 #define LCD_DIGIT2_COM2 LCD_COM2
EricLew 0:d4e5ad7ad71c 187 #define LCD_DIGIT2_COM2_SEG_MASK ~(LCD_SEG2 | LCD_SEG3 | LCD_SEG20 | LCD_SEG21)
EricLew 0:d4e5ad7ad71c 188 #define LCD_DIGIT2_COM3 LCD_COM3
EricLew 0:d4e5ad7ad71c 189 #define LCD_DIGIT2_COM3_SEG_MASK ~(LCD_SEG2 | LCD_SEG3 | LCD_SEG20 | LCD_SEG21)
EricLew 0:d4e5ad7ad71c 190
EricLew 0:d4e5ad7ad71c 191 #define LCD_DIGIT3_COM0 LCD_COM0
EricLew 0:d4e5ad7ad71c 192 #define LCD_DIGIT3_COM0_SEG_MASK ~(LCD_SEG4 | LCD_SEG5 | LCD_SEG18 | LCD_SEG19)
EricLew 0:d4e5ad7ad71c 193 #define LCD_DIGIT3_COM1 LCD_COM1
EricLew 0:d4e5ad7ad71c 194 #define LCD_DIGIT3_COM1_SEG_MASK ~(LCD_SEG4 | LCD_SEG5 | LCD_SEG18 | LCD_SEG19)
EricLew 0:d4e5ad7ad71c 195 #define LCD_DIGIT3_COM2 LCD_COM2
EricLew 0:d4e5ad7ad71c 196 #define LCD_DIGIT3_COM2_SEG_MASK ~(LCD_SEG4 | LCD_SEG5 | LCD_SEG18 | LCD_SEG19)
EricLew 0:d4e5ad7ad71c 197 #define LCD_DIGIT3_COM3 LCD_COM3
EricLew 0:d4e5ad7ad71c 198 #define LCD_DIGIT3_COM3_SEG_MASK ~(LCD_SEG4 | LCD_SEG5 | LCD_SEG18 | LCD_SEG19)
EricLew 0:d4e5ad7ad71c 199
EricLew 0:d4e5ad7ad71c 200 #define LCD_DIGIT4_COM0 LCD_COM0
EricLew 0:d4e5ad7ad71c 201 #define LCD_DIGIT4_COM0_SEG_MASK ~(LCD_SEG6 | LCD_SEG17)
EricLew 0:d4e5ad7ad71c 202 #define LCD_DIGIT4_COM0_1 LCD_COM0_1
EricLew 0:d4e5ad7ad71c 203 #define LCD_DIGIT4_COM0_1_SEG_MASK ~(LCD_SEG7 | LCD_SEG16)
EricLew 0:d4e5ad7ad71c 204 #define LCD_DIGIT4_COM1 LCD_COM1
EricLew 0:d4e5ad7ad71c 205 #define LCD_DIGIT4_COM1_SEG_MASK ~(LCD_SEG6 | LCD_SEG17)
EricLew 0:d4e5ad7ad71c 206 #define LCD_DIGIT4_COM1_1 LCD_COM1_1
EricLew 0:d4e5ad7ad71c 207 #define LCD_DIGIT4_COM1_1_SEG_MASK ~(LCD_SEG7 | LCD_SEG16)
EricLew 0:d4e5ad7ad71c 208 #define LCD_DIGIT4_COM2 LCD_COM2
EricLew 0:d4e5ad7ad71c 209 #define LCD_DIGIT4_COM2_SEG_MASK ~(LCD_SEG6 | LCD_SEG17)
EricLew 0:d4e5ad7ad71c 210 #define LCD_DIGIT4_COM2_1 LCD_COM2_1
EricLew 0:d4e5ad7ad71c 211 #define LCD_DIGIT4_COM2_1_SEG_MASK ~(LCD_SEG7 | LCD_SEG16)
EricLew 0:d4e5ad7ad71c 212 #define LCD_DIGIT4_COM3 LCD_COM3
EricLew 0:d4e5ad7ad71c 213 #define LCD_DIGIT4_COM3_SEG_MASK ~(LCD_SEG6 | LCD_SEG17)
EricLew 0:d4e5ad7ad71c 214 #define LCD_DIGIT4_COM3_1 LCD_COM3_1
EricLew 0:d4e5ad7ad71c 215 #define LCD_DIGIT4_COM3_1_SEG_MASK ~(LCD_SEG7 | LCD_SEG16)
EricLew 0:d4e5ad7ad71c 216
EricLew 0:d4e5ad7ad71c 217 #define LCD_DIGIT5_COM0 LCD_COM0
EricLew 0:d4e5ad7ad71c 218 #define LCD_DIGIT5_COM0_SEG_MASK ~(LCD_SEG9 | LCD_SEG14)
EricLew 0:d4e5ad7ad71c 219 #define LCD_DIGIT5_COM0_1 LCD_COM0_1
EricLew 0:d4e5ad7ad71c 220 #define LCD_DIGIT5_COM0_1_SEG_MASK ~(LCD_SEG8 | LCD_SEG15)
EricLew 0:d4e5ad7ad71c 221 #define LCD_DIGIT5_COM1 LCD_COM1
EricLew 0:d4e5ad7ad71c 222 #define LCD_DIGIT5_COM1_SEG_MASK ~(LCD_SEG9 | LCD_SEG14)
EricLew 0:d4e5ad7ad71c 223 #define LCD_DIGIT5_COM1_1 LCD_COM1_1
EricLew 0:d4e5ad7ad71c 224 #define LCD_DIGIT5_COM1_1_SEG_MASK ~(LCD_SEG8 | LCD_SEG15)
EricLew 0:d4e5ad7ad71c 225 #define LCD_DIGIT5_COM2 LCD_COM2
EricLew 0:d4e5ad7ad71c 226 #define LCD_DIGIT5_COM2_SEG_MASK ~(LCD_SEG9 | LCD_SEG14)
EricLew 0:d4e5ad7ad71c 227 #define LCD_DIGIT5_COM2_1 LCD_COM2_1
EricLew 0:d4e5ad7ad71c 228 #define LCD_DIGIT5_COM2_1_SEG_MASK ~(LCD_SEG8 | LCD_SEG15)
EricLew 0:d4e5ad7ad71c 229 #define LCD_DIGIT5_COM3 LCD_COM3
EricLew 0:d4e5ad7ad71c 230 #define LCD_DIGIT5_COM3_SEG_MASK ~(LCD_SEG9 | LCD_SEG14)
EricLew 0:d4e5ad7ad71c 231 #define LCD_DIGIT5_COM3_1 LCD_COM3_1
EricLew 0:d4e5ad7ad71c 232 #define LCD_DIGIT5_COM3_1_SEG_MASK ~(LCD_SEG8 | LCD_SEG15)
EricLew 0:d4e5ad7ad71c 233
EricLew 0:d4e5ad7ad71c 234 #define LCD_DIGIT6_COM0 LCD_COM0
EricLew 0:d4e5ad7ad71c 235 #define LCD_DIGIT6_COM0_SEG_MASK ~(LCD_SEG10 | LCD_SEG11 | LCD_SEG12 | LCD_SEG13)
EricLew 0:d4e5ad7ad71c 236 #define LCD_DIGIT6_COM1 LCD_COM1
EricLew 0:d4e5ad7ad71c 237 #define LCD_DIGIT6_COM1_SEG_MASK ~(LCD_SEG10 | LCD_SEG11 | LCD_SEG12 | LCD_SEG13)
EricLew 0:d4e5ad7ad71c 238 #define LCD_DIGIT6_COM2 LCD_COM2
EricLew 0:d4e5ad7ad71c 239 #define LCD_DIGIT6_COM2_SEG_MASK ~(LCD_SEG10 | LCD_SEG11 | LCD_SEG12 | LCD_SEG13)
EricLew 0:d4e5ad7ad71c 240 #define LCD_DIGIT6_COM3 LCD_COM3
EricLew 0:d4e5ad7ad71c 241 #define LCD_DIGIT6_COM3_SEG_MASK ~(LCD_SEG10 | LCD_SEG11 | LCD_SEG12 | LCD_SEG13)
EricLew 0:d4e5ad7ad71c 242
EricLew 0:d4e5ad7ad71c 243 /**
EricLew 0:d4e5ad7ad71c 244 * @brief LCD Bar location
EricLew 0:d4e5ad7ad71c 245 */
EricLew 0:d4e5ad7ad71c 246 #define LCD_BAR0_2_COM LCD_COM3
EricLew 0:d4e5ad7ad71c 247 #define LCD_BAR1_3_COM LCD_COM2
EricLew 0:d4e5ad7ad71c 248 #define LCD_BAR0_SEG LCD_SEG11
EricLew 0:d4e5ad7ad71c 249 #define LCD_BAR1_SEG LCD_SEG11
EricLew 0:d4e5ad7ad71c 250 #define LCD_BAR2_SEG LCD_SEG9
EricLew 0:d4e5ad7ad71c 251 #define LCD_BAR3_SEG LCD_SEG9
EricLew 0:d4e5ad7ad71c 252 #define LCD_BAR0_2_SEG_MASK ~(LCD_BAR0_SEG | LCD_BAR2_SEG)
EricLew 0:d4e5ad7ad71c 253 #define LCD_BAR1_3_SEG_MASK ~(LCD_BAR1_SEG | LCD_BAR3_SEG)
EricLew 0:d4e5ad7ad71c 254
EricLew 0:d4e5ad7ad71c 255 /**
EricLew 0:d4e5ad7ad71c 256 * @brief LCD segments & coms redefinition.
EricLew 0:d4e5ad7ad71c 257 * LCD component segments & coms are not necessarily link to MCU segmnents & coms output.
EricLew 0:d4e5ad7ad71c 258 */
EricLew 0:d4e5ad7ad71c 259 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
EricLew 0:d4e5ad7ad71c 260 #define LCD_COM0 MCU_LCD_COM0
EricLew 0:d4e5ad7ad71c 261 #define LCD_COM0_1 MCU_LCD_COM0_1
EricLew 0:d4e5ad7ad71c 262 #define LCD_COM1 MCU_LCD_COM1
EricLew 0:d4e5ad7ad71c 263 #define LCD_COM1_1 MCU_LCD_COM1_1
EricLew 0:d4e5ad7ad71c 264 #define LCD_COM2 MCU_LCD_COM2
EricLew 0:d4e5ad7ad71c 265 #define LCD_COM2_1 MCU_LCD_COM2_1
EricLew 0:d4e5ad7ad71c 266 #define LCD_COM3 MCU_LCD_COM3
EricLew 0:d4e5ad7ad71c 267 #define LCD_COM3_1 MCU_LCD_COM3_1
EricLew 0:d4e5ad7ad71c 268 #elif defined (USE_STM32L476G_DISCO_REVA)
EricLew 0:d4e5ad7ad71c 269 #define LCD_COM0 MCU_LCD_COM5
EricLew 0:d4e5ad7ad71c 270 #define LCD_COM0_1 MCU_LCD_COM5_1
EricLew 0:d4e5ad7ad71c 271 #define LCD_COM1 MCU_LCD_COM7
EricLew 0:d4e5ad7ad71c 272 #define LCD_COM1_1 MCU_LCD_COM7_1
EricLew 0:d4e5ad7ad71c 273 #define LCD_COM2 MCU_LCD_COM6
EricLew 0:d4e5ad7ad71c 274 #define LCD_COM2_1 MCU_LCD_COM6_1
EricLew 0:d4e5ad7ad71c 275 #define LCD_COM3 MCU_LCD_COM4
EricLew 0:d4e5ad7ad71c 276 #define LCD_COM3_1 MCU_LCD_COM4_1
EricLew 0:d4e5ad7ad71c 277 #endif
EricLew 0:d4e5ad7ad71c 278 #define LCD_SEG0 MCU_LCD_SEG4
EricLew 0:d4e5ad7ad71c 279 #define LCD_SEG1 MCU_LCD_SEG23
EricLew 0:d4e5ad7ad71c 280 #define LCD_SEG2 MCU_LCD_SEG6
EricLew 0:d4e5ad7ad71c 281 #define LCD_SEG3 MCU_LCD_SEG13
EricLew 0:d4e5ad7ad71c 282 #define LCD_SEG4 MCU_LCD_SEG15
EricLew 0:d4e5ad7ad71c 283 #define LCD_SEG5 MCU_LCD_SEG29
EricLew 0:d4e5ad7ad71c 284 #define LCD_SEG6 MCU_LCD_SEG31
EricLew 0:d4e5ad7ad71c 285 #define LCD_SEG7 MCU_LCD_SEG33
EricLew 0:d4e5ad7ad71c 286 #define LCD_SEG8 MCU_LCD_SEG35
EricLew 0:d4e5ad7ad71c 287 #define LCD_SEG9 MCU_LCD_SEG25
EricLew 0:d4e5ad7ad71c 288 #define LCD_SEG10 MCU_LCD_SEG17
EricLew 0:d4e5ad7ad71c 289 #define LCD_SEG11 MCU_LCD_SEG8
EricLew 0:d4e5ad7ad71c 290 #define LCD_SEG12 MCU_LCD_SEG9
EricLew 0:d4e5ad7ad71c 291 #define LCD_SEG13 MCU_LCD_SEG26
EricLew 0:d4e5ad7ad71c 292 #define LCD_SEG14 MCU_LCD_SEG24
EricLew 0:d4e5ad7ad71c 293 #define LCD_SEG15 MCU_LCD_SEG34
EricLew 0:d4e5ad7ad71c 294 #define LCD_SEG16 MCU_LCD_SEG32
EricLew 0:d4e5ad7ad71c 295 #define LCD_SEG17 MCU_LCD_SEG30
EricLew 0:d4e5ad7ad71c 296 #define LCD_SEG18 MCU_LCD_SEG28
EricLew 0:d4e5ad7ad71c 297 #define LCD_SEG19 MCU_LCD_SEG14
EricLew 0:d4e5ad7ad71c 298 #define LCD_SEG20 MCU_LCD_SEG12
EricLew 0:d4e5ad7ad71c 299 #define LCD_SEG21 MCU_LCD_SEG5
EricLew 0:d4e5ad7ad71c 300 #define LCD_SEG22 MCU_LCD_SEG22
EricLew 0:d4e5ad7ad71c 301 #define LCD_SEG23 MCU_LCD_SEG3
EricLew 0:d4e5ad7ad71c 302 #define LCD_SEG0_SHIFT MCU_LCD_SEG4_SHIFT
EricLew 0:d4e5ad7ad71c 303 #define LCD_SEG1_SHIFT MCU_LCD_SEG23_SHIFT
EricLew 0:d4e5ad7ad71c 304 #define LCD_SEG2_SHIFT MCU_LCD_SEG6_SHIFT
EricLew 0:d4e5ad7ad71c 305 #define LCD_SEG3_SHIFT MCU_LCD_SEG13_SHIFT
EricLew 0:d4e5ad7ad71c 306 #define LCD_SEG4_SHIFT MCU_LCD_SEG15_SHIFT
EricLew 0:d4e5ad7ad71c 307 #define LCD_SEG5_SHIFT MCU_LCD_SEG29_SHIFT
EricLew 0:d4e5ad7ad71c 308 #define LCD_SEG6_SHIFT MCU_LCD_SEG31_SHIFT
EricLew 0:d4e5ad7ad71c 309 #define LCD_SEG7_SHIFT MCU_LCD_SEG33_SHIFT
EricLew 0:d4e5ad7ad71c 310 #define LCD_SEG8_SHIFT MCU_LCD_SEG35_SHIFT
EricLew 0:d4e5ad7ad71c 311 #define LCD_SEG9_SHIFT MCU_LCD_SEG25_SHIFT
EricLew 0:d4e5ad7ad71c 312 #define LCD_SEG10_SHIFT MCU_LCD_SEG17_SHIFT
EricLew 0:d4e5ad7ad71c 313 #define LCD_SEG11_SHIFT MCU_LCD_SEG8_SHIFT
EricLew 0:d4e5ad7ad71c 314 #define LCD_SEG12_SHIFT MCU_LCD_SEG9_SHIFT
EricLew 0:d4e5ad7ad71c 315 #define LCD_SEG13_SHIFT MCU_LCD_SEG26_SHIFT
EricLew 0:d4e5ad7ad71c 316 #define LCD_SEG14_SHIFT MCU_LCD_SEG24_SHIFT
EricLew 0:d4e5ad7ad71c 317 #define LCD_SEG15_SHIFT MCU_LCD_SEG34_SHIFT
EricLew 0:d4e5ad7ad71c 318 #define LCD_SEG16_SHIFT MCU_LCD_SEG32_SHIFT
EricLew 0:d4e5ad7ad71c 319 #define LCD_SEG17_SHIFT MCU_LCD_SEG30_SHIFT
EricLew 0:d4e5ad7ad71c 320 #define LCD_SEG18_SHIFT MCU_LCD_SEG28_SHIFT
EricLew 0:d4e5ad7ad71c 321 #define LCD_SEG19_SHIFT MCU_LCD_SEG14_SHIFT
EricLew 0:d4e5ad7ad71c 322 #define LCD_SEG20_SHIFT MCU_LCD_SEG12_SHIFT
EricLew 0:d4e5ad7ad71c 323 #define LCD_SEG21_SHIFT MCU_LCD_SEG5_SHIFT
EricLew 0:d4e5ad7ad71c 324 #define LCD_SEG22_SHIFT MCU_LCD_SEG22_SHIFT
EricLew 0:d4e5ad7ad71c 325 #define LCD_SEG23_SHIFT MCU_LCD_SEG3_SHIFT
EricLew 0:d4e5ad7ad71c 326
EricLew 0:d4e5ad7ad71c 327 /**
EricLew 0:d4e5ad7ad71c 328 * @brief STM32 LCD segments & coms definitions.
EricLew 0:d4e5ad7ad71c 329 */
EricLew 0:d4e5ad7ad71c 330 #define MCU_LCD_COM0 LCD_RAM_REGISTER0
EricLew 0:d4e5ad7ad71c 331 #define MCU_LCD_COM0_1 LCD_RAM_REGISTER1
EricLew 0:d4e5ad7ad71c 332 #define MCU_LCD_COM1 LCD_RAM_REGISTER2
EricLew 0:d4e5ad7ad71c 333 #define MCU_LCD_COM1_1 LCD_RAM_REGISTER3
EricLew 0:d4e5ad7ad71c 334 #define MCU_LCD_COM2 LCD_RAM_REGISTER4
EricLew 0:d4e5ad7ad71c 335 #define MCU_LCD_COM2_1 LCD_RAM_REGISTER5
EricLew 0:d4e5ad7ad71c 336 #define MCU_LCD_COM3 LCD_RAM_REGISTER6
EricLew 0:d4e5ad7ad71c 337 #define MCU_LCD_COM3_1 LCD_RAM_REGISTER7
EricLew 0:d4e5ad7ad71c 338 #define MCU_LCD_COM4 LCD_RAM_REGISTER8
EricLew 0:d4e5ad7ad71c 339 #define MCU_LCD_COM4_1 LCD_RAM_REGISTER9
EricLew 0:d4e5ad7ad71c 340 #define MCU_LCD_COM5 LCD_RAM_REGISTER10
EricLew 0:d4e5ad7ad71c 341 #define MCU_LCD_COM5_1 LCD_RAM_REGISTER11
EricLew 0:d4e5ad7ad71c 342 #define MCU_LCD_COM6 LCD_RAM_REGISTER12
EricLew 0:d4e5ad7ad71c 343 #define MCU_LCD_COM6_1 LCD_RAM_REGISTER13
EricLew 0:d4e5ad7ad71c 344 #define MCU_LCD_COM7 LCD_RAM_REGISTER14
EricLew 0:d4e5ad7ad71c 345 #define MCU_LCD_COM7_1 LCD_RAM_REGISTER15
EricLew 0:d4e5ad7ad71c 346 #define MCU_LCD_SEG0 (1U << MCU_LCD_SEG0_SHIFT)
EricLew 0:d4e5ad7ad71c 347 #define MCU_LCD_SEG1 (1U << MCU_LCD_SEG1_SHIFT)
EricLew 0:d4e5ad7ad71c 348 #define MCU_LCD_SEG2 (1U << MCU_LCD_SEG2_SHIFT)
EricLew 0:d4e5ad7ad71c 349 #define MCU_LCD_SEG3 (1U << MCU_LCD_SEG3_SHIFT)
EricLew 0:d4e5ad7ad71c 350 #define MCU_LCD_SEG4 (1U << MCU_LCD_SEG4_SHIFT)
EricLew 0:d4e5ad7ad71c 351 #define MCU_LCD_SEG5 (1U << MCU_LCD_SEG5_SHIFT)
EricLew 0:d4e5ad7ad71c 352 #define MCU_LCD_SEG6 (1U << MCU_LCD_SEG6_SHIFT)
EricLew 0:d4e5ad7ad71c 353 #define MCU_LCD_SEG7 (1U << MCU_LCD_SEG7_SHIFT)
EricLew 0:d4e5ad7ad71c 354 #define MCU_LCD_SEG8 (1U << MCU_LCD_SEG8_SHIFT)
EricLew 0:d4e5ad7ad71c 355 #define MCU_LCD_SEG9 (1U << MCU_LCD_SEG9_SHIFT)
EricLew 0:d4e5ad7ad71c 356 #define MCU_LCD_SEG10 (1U << MCU_LCD_SEG10_SHIFT)
EricLew 0:d4e5ad7ad71c 357 #define MCU_LCD_SEG11 (1U << MCU_LCD_SEG11_SHIFT)
EricLew 0:d4e5ad7ad71c 358 #define MCU_LCD_SEG12 (1U << MCU_LCD_SEG12_SHIFT)
EricLew 0:d4e5ad7ad71c 359 #define MCU_LCD_SEG13 (1U << MCU_LCD_SEG13_SHIFT)
EricLew 0:d4e5ad7ad71c 360 #define MCU_LCD_SEG14 (1U << MCU_LCD_SEG14_SHIFT)
EricLew 0:d4e5ad7ad71c 361 #define MCU_LCD_SEG15 (1U << MCU_LCD_SEG15_SHIFT)
EricLew 0:d4e5ad7ad71c 362 #define MCU_LCD_SEG16 (1U << MCU_LCD_SEG16_SHIFT)
EricLew 0:d4e5ad7ad71c 363 #define MCU_LCD_SEG17 (1U << MCU_LCD_SEG17_SHIFT)
EricLew 0:d4e5ad7ad71c 364 #define MCU_LCD_SEG18 (1U << MCU_LCD_SEG18_SHIFT)
EricLew 0:d4e5ad7ad71c 365 #define MCU_LCD_SEG19 (1U << MCU_LCD_SEG19_SHIFT)
EricLew 0:d4e5ad7ad71c 366 #define MCU_LCD_SEG20 (1U << MCU_LCD_SEG20_SHIFT)
EricLew 0:d4e5ad7ad71c 367 #define MCU_LCD_SEG21 (1U << MCU_LCD_SEG21_SHIFT)
EricLew 0:d4e5ad7ad71c 368 #define MCU_LCD_SEG22 (1U << MCU_LCD_SEG22_SHIFT)
EricLew 0:d4e5ad7ad71c 369 #define MCU_LCD_SEG23 (1U << MCU_LCD_SEG23_SHIFT)
EricLew 0:d4e5ad7ad71c 370 #define MCU_LCD_SEG24 (1U << MCU_LCD_SEG24_SHIFT)
EricLew 0:d4e5ad7ad71c 371 #define MCU_LCD_SEG25 (1U << MCU_LCD_SEG25_SHIFT)
EricLew 0:d4e5ad7ad71c 372 #define MCU_LCD_SEG26 (1U << MCU_LCD_SEG26_SHIFT)
EricLew 0:d4e5ad7ad71c 373 #define MCU_LCD_SEG27 (1U << MCU_LCD_SEG27_SHIFT)
EricLew 0:d4e5ad7ad71c 374 #define MCU_LCD_SEG28 (1U << MCU_LCD_SEG28_SHIFT)
EricLew 0:d4e5ad7ad71c 375 #define MCU_LCD_SEG29 (1U << MCU_LCD_SEG29_SHIFT)
EricLew 0:d4e5ad7ad71c 376 #define MCU_LCD_SEG30 (1U << MCU_LCD_SEG30_SHIFT)
EricLew 0:d4e5ad7ad71c 377 #define MCU_LCD_SEG31 (1U << MCU_LCD_SEG31_SHIFT)
EricLew 0:d4e5ad7ad71c 378 #define MCU_LCD_SEG32 (1U << MCU_LCD_SEG32_SHIFT)
EricLew 0:d4e5ad7ad71c 379 #define MCU_LCD_SEG33 (1U << MCU_LCD_SEG33_SHIFT)
EricLew 0:d4e5ad7ad71c 380 #define MCU_LCD_SEG34 (1U << MCU_LCD_SEG34_SHIFT)
EricLew 0:d4e5ad7ad71c 381 #define MCU_LCD_SEG35 (1U << MCU_LCD_SEG35_SHIFT)
EricLew 0:d4e5ad7ad71c 382 #define MCU_LCD_SEG36 (1U << MCU_LCD_SEG36_SHIFT)
EricLew 0:d4e5ad7ad71c 383 #define MCU_LCD_SEG37 (1U << MCU_LCD_SEG37_SHIFT)
EricLew 0:d4e5ad7ad71c 384 #define MCU_LCD_SEG38 (1U << MCU_LCD_SEG38_SHIFT)
EricLew 0:d4e5ad7ad71c 385 #define MCU_LCD_SEG0_SHIFT 0
EricLew 0:d4e5ad7ad71c 386 #define MCU_LCD_SEG1_SHIFT 1
EricLew 0:d4e5ad7ad71c 387 #define MCU_LCD_SEG2_SHIFT 2
EricLew 0:d4e5ad7ad71c 388 #define MCU_LCD_SEG3_SHIFT 3
EricLew 0:d4e5ad7ad71c 389 #define MCU_LCD_SEG4_SHIFT 4
EricLew 0:d4e5ad7ad71c 390 #define MCU_LCD_SEG5_SHIFT 5
EricLew 0:d4e5ad7ad71c 391 #define MCU_LCD_SEG6_SHIFT 6
EricLew 0:d4e5ad7ad71c 392 #define MCU_LCD_SEG7_SHIFT 7
EricLew 0:d4e5ad7ad71c 393 #define MCU_LCD_SEG8_SHIFT 8
EricLew 0:d4e5ad7ad71c 394 #define MCU_LCD_SEG9_SHIFT 9
EricLew 0:d4e5ad7ad71c 395 #define MCU_LCD_SEG10_SHIFT 10
EricLew 0:d4e5ad7ad71c 396 #define MCU_LCD_SEG11_SHIFT 11
EricLew 0:d4e5ad7ad71c 397 #define MCU_LCD_SEG12_SHIFT 12
EricLew 0:d4e5ad7ad71c 398 #define MCU_LCD_SEG13_SHIFT 13
EricLew 0:d4e5ad7ad71c 399 #define MCU_LCD_SEG14_SHIFT 14
EricLew 0:d4e5ad7ad71c 400 #define MCU_LCD_SEG15_SHIFT 15
EricLew 0:d4e5ad7ad71c 401 #define MCU_LCD_SEG16_SHIFT 16
EricLew 0:d4e5ad7ad71c 402 #define MCU_LCD_SEG17_SHIFT 17
EricLew 0:d4e5ad7ad71c 403 #define MCU_LCD_SEG18_SHIFT 18
EricLew 0:d4e5ad7ad71c 404 #define MCU_LCD_SEG19_SHIFT 19
EricLew 0:d4e5ad7ad71c 405 #define MCU_LCD_SEG20_SHIFT 20
EricLew 0:d4e5ad7ad71c 406 #define MCU_LCD_SEG21_SHIFT 21
EricLew 0:d4e5ad7ad71c 407 #define MCU_LCD_SEG22_SHIFT 22
EricLew 0:d4e5ad7ad71c 408 #define MCU_LCD_SEG23_SHIFT 23
EricLew 0:d4e5ad7ad71c 409 #define MCU_LCD_SEG24_SHIFT 24
EricLew 0:d4e5ad7ad71c 410 #define MCU_LCD_SEG25_SHIFT 25
EricLew 0:d4e5ad7ad71c 411 #define MCU_LCD_SEG26_SHIFT 26
EricLew 0:d4e5ad7ad71c 412 #define MCU_LCD_SEG27_SHIFT 27
EricLew 0:d4e5ad7ad71c 413 #define MCU_LCD_SEG28_SHIFT 28
EricLew 0:d4e5ad7ad71c 414 #define MCU_LCD_SEG29_SHIFT 29
EricLew 0:d4e5ad7ad71c 415 #define MCU_LCD_SEG30_SHIFT 30
EricLew 0:d4e5ad7ad71c 416 #define MCU_LCD_SEG31_SHIFT 31
EricLew 0:d4e5ad7ad71c 417 #define MCU_LCD_SEG32_SHIFT 0
EricLew 0:d4e5ad7ad71c 418 #define MCU_LCD_SEG33_SHIFT 1
EricLew 0:d4e5ad7ad71c 419 #define MCU_LCD_SEG34_SHIFT 2
EricLew 0:d4e5ad7ad71c 420 #define MCU_LCD_SEG35_SHIFT 3
EricLew 0:d4e5ad7ad71c 421 #define MCU_LCD_SEG36_SHIFT 4
EricLew 0:d4e5ad7ad71c 422 #define MCU_LCD_SEG37_SHIFT 5
EricLew 0:d4e5ad7ad71c 423 #define MCU_LCD_SEG38_SHIFT 6
EricLew 0:d4e5ad7ad71c 424 #define MCU_LCD_SEG39_SHIFT 7
EricLew 0:d4e5ad7ad71c 425 #define MCU_LCD_SEG40_SHIFT 8
EricLew 0:d4e5ad7ad71c 426 #define MCU_LCD_SEG41_SHIFT 9
EricLew 0:d4e5ad7ad71c 427 #define MCU_LCD_SEG42_SHIFT 10
EricLew 0:d4e5ad7ad71c 428 #define MCU_LCD_SEG43_SHIFT 11
EricLew 0:d4e5ad7ad71c 429
EricLew 0:d4e5ad7ad71c 430 /**
EricLew 0:d4e5ad7ad71c 431 * @brief LCD Pins definition.
EricLew 0:d4e5ad7ad71c 432 */
EricLew 0:d4e5ad7ad71c 433 #if defined (USE_STM32L476G_DISCO_REVC) || defined (USE_STM32L476G_DISCO_REVB)
EricLew 0:d4e5ad7ad71c 434 #define LCD_GPIO_BANKA_PINS (GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | \
EricLew 0:d4e5ad7ad71c 435 GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_15)
EricLew 0:d4e5ad7ad71c 436 #define LCD_GPIO_BANKB_PINS (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | \
EricLew 0:d4e5ad7ad71c 437 GPIO_PIN_5 | GPIO_PIN_9 | GPIO_PIN_12 | \
EricLew 0:d4e5ad7ad71c 438 GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15)
EricLew 0:d4e5ad7ad71c 439 #define LCD_GPIO_BANKC_PINS (GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | \
EricLew 0:d4e5ad7ad71c 440 GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8)
EricLew 0:d4e5ad7ad71c 441 #define LCD_GPIO_BANKD_PINS (GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | \
EricLew 0:d4e5ad7ad71c 442 GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | \
EricLew 0:d4e5ad7ad71c 443 GPIO_PIN_14 | GPIO_PIN_15)
EricLew 0:d4e5ad7ad71c 444 #elif defined (USE_STM32L476G_DISCO_REVA)
EricLew 0:d4e5ad7ad71c 445 #define LCD_GPIO_BANKA_PINS (GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_15)
EricLew 0:d4e5ad7ad71c 446 #define LCD_GPIO_BANKB_PINS (GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | \
EricLew 0:d4e5ad7ad71c 447 GPIO_PIN_5 | GPIO_PIN_12 | GPIO_PIN_13 | \
EricLew 0:d4e5ad7ad71c 448 GPIO_PIN_14 | GPIO_PIN_15)
EricLew 0:d4e5ad7ad71c 449 #define LCD_GPIO_BANKC_PINS (GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | \
EricLew 0:d4e5ad7ad71c 450 GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | \
EricLew 0:d4e5ad7ad71c 451 GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12)
EricLew 0:d4e5ad7ad71c 452 #define LCD_GPIO_BANKD_PINS (GPIO_PIN_2 | GPIO_PIN_8 | GPIO_PIN_9 | \
EricLew 0:d4e5ad7ad71c 453 GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | \
EricLew 0:d4e5ad7ad71c 454 GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15)
EricLew 0:d4e5ad7ad71c 455 #endif
EricLew 0:d4e5ad7ad71c 456
EricLew 0:d4e5ad7ad71c 457 /* Define for scrolling sentences*/
EricLew 0:d4e5ad7ad71c 458 #define SCROLL_SPEED_HIGH 150
EricLew 0:d4e5ad7ad71c 459 #define SCROLL_SPEED_MEDIUM 300
EricLew 0:d4e5ad7ad71c 460 #define SCROLL_SPEED_LOW 450
EricLew 0:d4e5ad7ad71c 461
EricLew 0:d4e5ad7ad71c 462 #define DOT ((uint16_t) 0x8000 ) /* for add decimal point in string */
EricLew 0:d4e5ad7ad71c 463 #define DOUBLE_DOT ((uint16_t) 0x4000) /* for add decimal point in string */
EricLew 0:d4e5ad7ad71c 464
EricLew 0:d4e5ad7ad71c 465 /* code for '(' character */
EricLew 0:d4e5ad7ad71c 466 #define C_OPENPARMAP ((uint16_t) 0x0028)
EricLew 0:d4e5ad7ad71c 467
EricLew 0:d4e5ad7ad71c 468 /* code for ')' character */
EricLew 0:d4e5ad7ad71c 469 #define C_CLOSEPARMAP ((uint16_t) 0x0011)
EricLew 0:d4e5ad7ad71c 470
EricLew 0:d4e5ad7ad71c 471 /* code for 'd' character */
EricLew 0:d4e5ad7ad71c 472 #define C_DMAP ((uint16_t) 0xf300)
EricLew 0:d4e5ad7ad71c 473
EricLew 0:d4e5ad7ad71c 474 /* code for 'm' character */
EricLew 0:d4e5ad7ad71c 475 #define C_MMAP ((uint16_t) 0xb210)
EricLew 0:d4e5ad7ad71c 476
EricLew 0:d4e5ad7ad71c 477 /* code for 'n' character */
EricLew 0:d4e5ad7ad71c 478 #define C_NMAP ((uint16_t) 0x2210)
EricLew 0:d4e5ad7ad71c 479
EricLew 0:d4e5ad7ad71c 480 /* code for 'µ' character */
EricLew 0:d4e5ad7ad71c 481 #define C_UMAP ((uint16_t) 0x6084)
EricLew 0:d4e5ad7ad71c 482
EricLew 0:d4e5ad7ad71c 483 /* constant code for '*' character */
EricLew 0:d4e5ad7ad71c 484 #define C_STAR ((uint16_t) 0xA0DD)
EricLew 0:d4e5ad7ad71c 485
EricLew 0:d4e5ad7ad71c 486 /* constant code for '-' character */
EricLew 0:d4e5ad7ad71c 487 #define C_MINUS ((uint16_t) 0xA000)
EricLew 0:d4e5ad7ad71c 488
EricLew 0:d4e5ad7ad71c 489 /* constant code for '+' character */
EricLew 0:d4e5ad7ad71c 490 #define C_PLUS ((uint16_t) 0xA014)
EricLew 0:d4e5ad7ad71c 491
EricLew 0:d4e5ad7ad71c 492 /* constant code for '/' */
EricLew 0:d4e5ad7ad71c 493 #define C_SLATCH ((uint16_t) 0x00c0)
EricLew 0:d4e5ad7ad71c 494
EricLew 0:d4e5ad7ad71c 495 /* constant code for ° */
EricLew 0:d4e5ad7ad71c 496 #define C_PERCENT_1 ((uint16_t) 0xec00)
EricLew 0:d4e5ad7ad71c 497
EricLew 0:d4e5ad7ad71c 498 /* constant code for small o */
EricLew 0:d4e5ad7ad71c 499 #define C_PERCENT_2 ((uint16_t) 0xb300)
EricLew 0:d4e5ad7ad71c 500
EricLew 0:d4e5ad7ad71c 501 #define C_FULL ((uint16_t) 0xffdd)
EricLew 0:d4e5ad7ad71c 502
EricLew 0:d4e5ad7ad71c 503 /**
EricLew 0:d4e5ad7ad71c 504 * @}
EricLew 0:d4e5ad7ad71c 505 */
EricLew 0:d4e5ad7ad71c 506
EricLew 0:d4e5ad7ad71c 507 /* Exported functions --------------------------------------------------------*/
EricLew 0:d4e5ad7ad71c 508
EricLew 0:d4e5ad7ad71c 509 /** @defgroup STM32L476G_DISCOVERY_LCD_Exported_Functions Exported Functions
EricLew 0:d4e5ad7ad71c 510 * @{
EricLew 0:d4e5ad7ad71c 511 */
EricLew 0:d4e5ad7ad71c 512 void BSP_LCD_GLASS_Init(void);
EricLew 0:d4e5ad7ad71c 513 void BSP_LCD_GLASS_DeInit(void);
EricLew 0:d4e5ad7ad71c 514 void BSP_LCD_GLASS_BlinkConfig(uint32_t BlinkMode, uint32_t BlinkFrequency);
EricLew 0:d4e5ad7ad71c 515 void BSP_LCD_GLASS_Contrast(uint32_t Contrast);
EricLew 0:d4e5ad7ad71c 516 void BSP_LCD_GLASS_DisplayChar(uint8_t* ch, Point_Typedef Point, DoublePoint_Typedef Column, DigitPosition_Typedef Position);
EricLew 0:d4e5ad7ad71c 517 void BSP_LCD_GLASS_DisplayString(uint8_t* ptr);
EricLew 0:d4e5ad7ad71c 518 void BSP_LCD_GLASS_DisplayStrDeci(uint16_t* ptr);
EricLew 0:d4e5ad7ad71c 519 void BSP_LCD_GLASS_ScrollSentence(uint8_t* ptr, uint16_t nScroll, uint16_t ScrollSpeed);
EricLew 0:d4e5ad7ad71c 520 void BSP_LCD_GLASS_DisplayBar(uint32_t BarId);
EricLew 0:d4e5ad7ad71c 521 void BSP_LCD_GLASS_ClearBar(uint32_t BarId);
EricLew 0:d4e5ad7ad71c 522 void BSP_LCD_GLASS_BarLevelConfig(uint8_t BarLevel);
EricLew 0:d4e5ad7ad71c 523 void BSP_LCD_GLASS_Clear(void);
EricLew 0:d4e5ad7ad71c 524 /**
EricLew 0:d4e5ad7ad71c 525 * @}
EricLew 0:d4e5ad7ad71c 526 */
EricLew 0:d4e5ad7ad71c 527
EricLew 0:d4e5ad7ad71c 528 /**
EricLew 0:d4e5ad7ad71c 529 * @}
EricLew 0:d4e5ad7ad71c 530 */
EricLew 0:d4e5ad7ad71c 531
EricLew 0:d4e5ad7ad71c 532 /**
EricLew 0:d4e5ad7ad71c 533 * @}
EricLew 0:d4e5ad7ad71c 534 */
EricLew 0:d4e5ad7ad71c 535
EricLew 0:d4e5ad7ad71c 536 /**
EricLew 0:d4e5ad7ad71c 537 * @}
EricLew 0:d4e5ad7ad71c 538 */
EricLew 0:d4e5ad7ad71c 539
EricLew 0:d4e5ad7ad71c 540 #ifdef __cplusplus
EricLew 0:d4e5ad7ad71c 541 }
EricLew 0:d4e5ad7ad71c 542 #endif
EricLew 0:d4e5ad7ad71c 543
EricLew 0:d4e5ad7ad71c 544 #endif /* __STM32L476G_DISCOVERY_GLASS_LCD_H */
EricLew 0:d4e5ad7ad71c 545
EricLew 0:d4e5ad7ad71c 546 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
EricLew 0:d4e5ad7ad71c 547