21 #ifndef STM32L4xx_HAL_LCD_H 22 #define STM32L4xx_HAL_LCD_H 28 #if defined(STM32L433xx) || defined(STM32L443xx) || defined(STM32L476xx) || defined(STM32L486xx) || defined(STM32L496xx) || defined(STM32L4A6xx) 118 #define HAL_LCD_ERROR_NONE (0x00000000U) 119 #define HAL_LCD_ERROR_FCRSF (0x00000001U) 120 #define HAL_LCD_ERROR_UDR (0x00000002U) 121 #define HAL_LCD_ERROR_UDD (0x00000004U) 122 #define HAL_LCD_ERROR_ENS (0x00000008U) 123 #define HAL_LCD_ERROR_RDY (0x00000010U) 131 #define LCD_PRESCALER_1 (0x00000000U) 132 #define LCD_PRESCALER_2 (0x00400000U) 133 #define LCD_PRESCALER_4 (0x00800000U) 134 #define LCD_PRESCALER_8 (0x00C00000U) 135 #define LCD_PRESCALER_16 (0x01000000U) 136 #define LCD_PRESCALER_32 (0x01400000U) 137 #define LCD_PRESCALER_64 (0x01800000U) 138 #define LCD_PRESCALER_128 (0x01C00000U) 139 #define LCD_PRESCALER_256 (0x02000000U) 140 #define LCD_PRESCALER_512 (0x02400000U) 141 #define LCD_PRESCALER_1024 (0x02800000U) 142 #define LCD_PRESCALER_2048 (0x02C00000U) 143 #define LCD_PRESCALER_4096 (0x03000000U) 144 #define LCD_PRESCALER_8192 (0x03400000U) 145 #define LCD_PRESCALER_16384 (0x03800000U) 146 #define LCD_PRESCALER_32768 (0x03C00000U) 154 #define LCD_DIVIDER_16 (0x00000000U) 155 #define LCD_DIVIDER_17 (0x00040000U) 156 #define LCD_DIVIDER_18 (0x00080000U) 157 #define LCD_DIVIDER_19 (0x000C0000U) 158 #define LCD_DIVIDER_20 (0x00100000U) 159 #define LCD_DIVIDER_21 (0x00140000U) 160 #define LCD_DIVIDER_22 (0x00180000U) 161 #define LCD_DIVIDER_23 (0x001C0000U) 162 #define LCD_DIVIDER_24 (0x00200000U) 163 #define LCD_DIVIDER_25 (0x00240000U) 164 #define LCD_DIVIDER_26 (0x00280000U) 165 #define LCD_DIVIDER_27 (0x002C0000U) 166 #define LCD_DIVIDER_28 (0x00300000U) 167 #define LCD_DIVIDER_29 (0x00340000U) 168 #define LCD_DIVIDER_30 (0x00380000U) 169 #define LCD_DIVIDER_31 (0x003C0000U) 178 #define LCD_DUTY_STATIC (0x00000000U) 179 #define LCD_DUTY_1_2 (LCD_CR_DUTY_0) 180 #define LCD_DUTY_1_3 (LCD_CR_DUTY_1) 181 #define LCD_DUTY_1_4 ((LCD_CR_DUTY_1 | LCD_CR_DUTY_0)) 182 #define LCD_DUTY_1_8 (LCD_CR_DUTY_2) 191 #define LCD_BIAS_1_4 (0x00000000U) 192 #define LCD_BIAS_1_2 LCD_CR_BIAS_0 193 #define LCD_BIAS_1_3 LCD_CR_BIAS_1 201 #define LCD_VOLTAGESOURCE_INTERNAL (0x00000000U) 202 #define LCD_VOLTAGESOURCE_EXTERNAL LCD_CR_VSEL 210 #define LCD_IT_SOF LCD_FCR_SOFIE 211 #define LCD_IT_UDD LCD_FCR_UDDIE 219 #define LCD_PULSEONDURATION_0 (0x00000000U) 220 #define LCD_PULSEONDURATION_1 (LCD_FCR_PON_0) 221 #define LCD_PULSEONDURATION_2 (LCD_FCR_PON_1) 222 #define LCD_PULSEONDURATION_3 (LCD_FCR_PON_1 | LCD_FCR_PON_0) 223 #define LCD_PULSEONDURATION_4 (LCD_FCR_PON_2) 224 #define LCD_PULSEONDURATION_5 (LCD_FCR_PON_2 | LCD_FCR_PON_0) 225 #define LCD_PULSEONDURATION_6 (LCD_FCR_PON_2 | LCD_FCR_PON_1) 226 #define LCD_PULSEONDURATION_7 (LCD_FCR_PON) 235 #define LCD_DEADTIME_0 (0x00000000U) 236 #define LCD_DEADTIME_1 (LCD_FCR_DEAD_0) 237 #define LCD_DEADTIME_2 (LCD_FCR_DEAD_1) 238 #define LCD_DEADTIME_3 (LCD_FCR_DEAD_1 | LCD_FCR_DEAD_0) 239 #define LCD_DEADTIME_4 (LCD_FCR_DEAD_2) 240 #define LCD_DEADTIME_5 (LCD_FCR_DEAD_2 | LCD_FCR_DEAD_0) 241 #define LCD_DEADTIME_6 (LCD_FCR_DEAD_2 | LCD_FCR_DEAD_1) 242 #define LCD_DEADTIME_7 (LCD_FCR_DEAD) 250 #define LCD_BLINKMODE_OFF (0x00000000U) 251 #define LCD_BLINKMODE_SEG0_COM0 (LCD_FCR_BLINK_0) 252 #define LCD_BLINKMODE_SEG0_ALLCOM (LCD_FCR_BLINK_1) 254 #define LCD_BLINKMODE_ALLSEG_ALLCOM (LCD_FCR_BLINK) 262 #define LCD_BLINKFREQUENCY_DIV8 (0x00000000U) 263 #define LCD_BLINKFREQUENCY_DIV16 (LCD_FCR_BLINKF_0) 264 #define LCD_BLINKFREQUENCY_DIV32 (LCD_FCR_BLINKF_1) 265 #define LCD_BLINKFREQUENCY_DIV64 (LCD_FCR_BLINKF_1 | LCD_FCR_BLINKF_0) 266 #define LCD_BLINKFREQUENCY_DIV128 (LCD_FCR_BLINKF_2) 267 #define LCD_BLINKFREQUENCY_DIV256 (LCD_FCR_BLINKF_2 |LCD_FCR_BLINKF_0) 268 #define LCD_BLINKFREQUENCY_DIV512 (LCD_FCR_BLINKF_2 |LCD_FCR_BLINKF_1) 269 #define LCD_BLINKFREQUENCY_DIV1024 (LCD_FCR_BLINKF) 277 #define LCD_CONTRASTLEVEL_0 (0x00000000U) 278 #define LCD_CONTRASTLEVEL_1 (LCD_FCR_CC_0) 279 #define LCD_CONTRASTLEVEL_2 (LCD_FCR_CC_1) 280 #define LCD_CONTRASTLEVEL_3 (LCD_FCR_CC_1 | LCD_FCR_CC_0) 281 #define LCD_CONTRASTLEVEL_4 (LCD_FCR_CC_2) 282 #define LCD_CONTRASTLEVEL_5 (LCD_FCR_CC_2 | LCD_FCR_CC_0) 283 #define LCD_CONTRASTLEVEL_6 (LCD_FCR_CC_2 | LCD_FCR_CC_1) 284 #define LCD_CONTRASTLEVEL_7 (LCD_FCR_CC) 292 #define LCD_RAM_REGISTER0 (0x00000000U) 293 #define LCD_RAM_REGISTER1 (0x00000001U) 294 #define LCD_RAM_REGISTER2 (0x00000002U) 295 #define LCD_RAM_REGISTER3 (0x00000003U) 296 #define LCD_RAM_REGISTER4 (0x00000004U) 297 #define LCD_RAM_REGISTER5 (0x00000005U) 298 #define LCD_RAM_REGISTER6 (0x00000006U) 299 #define LCD_RAM_REGISTER7 (0x00000007U) 300 #define LCD_RAM_REGISTER8 (0x00000008U) 301 #define LCD_RAM_REGISTER9 (0x00000009U) 302 #define LCD_RAM_REGISTER10 (0x0000000AU) 303 #define LCD_RAM_REGISTER11 (0x0000000BU) 304 #define LCD_RAM_REGISTER12 (0x0000000CU) 305 #define LCD_RAM_REGISTER13 (0x0000000DU) 306 #define LCD_RAM_REGISTER14 (0x0000000EU) 307 #define LCD_RAM_REGISTER15 (0x0000000FU) 316 #define LCD_HIGHDRIVE_DISABLE ((uint32_t)0x00000000) 317 #define LCD_HIGHDRIVE_ENABLE (LCD_FCR_HD) 326 #define LCD_MUXSEGMENT_DISABLE (0x00000000U) 327 #define LCD_MUXSEGMENT_ENABLE (LCD_CR_MUX_SEG) 335 #define LCD_FLAG_ENS LCD_SR_ENS 336 #define LCD_FLAG_SOF LCD_SR_SOF 337 #define LCD_FLAG_UDR LCD_SR_UDR 338 #define LCD_FLAG_UDD LCD_SR_UDD 339 #define LCD_FLAG_RDY LCD_SR_RDY 340 #define LCD_FLAG_FCRSF LCD_SR_FCRSR 358 #define __HAL_LCD_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_LCD_STATE_RESET) 364 #define __HAL_LCD_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, LCD_CR_LCDEN) 370 #define __HAL_LCD_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, LCD_CR_LCDEN) 381 #define __HAL_LCD_HIGHDRIVER_ENABLE(__HANDLE__) \ 383 SET_BIT((__HANDLE__)->Instance->FCR, LCD_FCR_HD); \ 384 LCD_WaitForSynchro(__HANDLE__); \ 391 #define __HAL_LCD_HIGHDRIVER_DISABLE(__HANDLE__) \ 393 CLEAR_BIT((__HANDLE__)->Instance->FCR, LCD_FCR_HD); \ 394 LCD_WaitForSynchro(__HANDLE__); \ 401 #define __HAL_LCD_VOLTAGE_BUFFER_ENABLE(__HANDLE__) SET_BIT((__HANDLE__)->Instance->CR, LCD_CR_BUFEN) 407 #define __HAL_LCD_VOLTAGE_BUFFER_DISABLE(__HANDLE__) CLEAR_BIT((__HANDLE__)->Instance->CR, LCD_CR_BUFEN) 425 #define __HAL_LCD_PULSEONDURATION_CONFIG(__HANDLE__, __DURATION__) \ 427 MODIFY_REG((__HANDLE__)->Instance->FCR, LCD_FCR_PON, (__DURATION__)); \ 428 LCD_WaitForSynchro(__HANDLE__); \ 446 #define __HAL_LCD_DEADTIME_CONFIG(__HANDLE__, __DEADTIME__) \ 448 MODIFY_REG((__HANDLE__)->Instance->FCR, LCD_FCR_DEAD, (__DEADTIME__)); \ 449 LCD_WaitForSynchro(__HANDLE__); \ 467 #define __HAL_LCD_CONTRAST_CONFIG(__HANDLE__, __CONTRAST__) \ 469 MODIFY_REG((__HANDLE__)->Instance->FCR, LCD_FCR_CC, (__CONTRAST__)); \ 470 LCD_WaitForSynchro(__HANDLE__); \ 495 #define __HAL_LCD_BLINK_CONFIG(__HANDLE__, __BLINKMODE__, __BLINKFREQUENCY__) \ 497 MODIFY_REG((__HANDLE__)->Instance->FCR, (LCD_FCR_BLINKF | LCD_FCR_BLINK), ((__BLINKMODE__) | (__BLINKFREQUENCY__))); \ 498 LCD_WaitForSynchro(__HANDLE__); \ 509 #define __HAL_LCD_ENABLE_IT(__HANDLE__, __INTERRUPT__) \ 511 SET_BIT((__HANDLE__)->Instance->FCR, (__INTERRUPT__)); \ 512 LCD_WaitForSynchro(__HANDLE__); \ 523 #define __HAL_LCD_DISABLE_IT(__HANDLE__, __INTERRUPT__) \ 525 CLEAR_BIT((__HANDLE__)->Instance->FCR, (__INTERRUPT__)); \ 526 LCD_WaitForSynchro(__HANDLE__); \ 540 #define __HAL_LCD_GET_IT_SOURCE(__HANDLE__, __IT__) (((__HANDLE__)->Instance->FCR) & (__IT__)) 562 #define __HAL_LCD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR & (__FLAG__)) == (__FLAG__)) 572 #define __HAL_LCD_CLEAR_FLAG(__HANDLE__, __FLAG__) WRITE_REG((__HANDLE__)->Instance->CLR, (__FLAG__)) 628 #define IS_LCD_PRESCALER(__PRESCALER__) (((__PRESCALER__) == LCD_PRESCALER_1) || \ 629 ((__PRESCALER__) == LCD_PRESCALER_2) || \ 630 ((__PRESCALER__) == LCD_PRESCALER_4) || \ 631 ((__PRESCALER__) == LCD_PRESCALER_8) || \ 632 ((__PRESCALER__) == LCD_PRESCALER_16) || \ 633 ((__PRESCALER__) == LCD_PRESCALER_32) || \ 634 ((__PRESCALER__) == LCD_PRESCALER_64) || \ 635 ((__PRESCALER__) == LCD_PRESCALER_128) || \ 636 ((__PRESCALER__) == LCD_PRESCALER_256) || \ 637 ((__PRESCALER__) == LCD_PRESCALER_512) || \ 638 ((__PRESCALER__) == LCD_PRESCALER_1024) || \ 639 ((__PRESCALER__) == LCD_PRESCALER_2048) || \ 640 ((__PRESCALER__) == LCD_PRESCALER_4096) || \ 641 ((__PRESCALER__) == LCD_PRESCALER_8192) || \ 642 ((__PRESCALER__) == LCD_PRESCALER_16384) || \ 643 ((__PRESCALER__) == LCD_PRESCALER_32768)) 645 #define IS_LCD_DIVIDER(__DIVIDER__) (((__DIVIDER__) == LCD_DIVIDER_16) || \ 646 ((__DIVIDER__) == LCD_DIVIDER_17) || \ 647 ((__DIVIDER__) == LCD_DIVIDER_18) || \ 648 ((__DIVIDER__) == LCD_DIVIDER_19) || \ 649 ((__DIVIDER__) == LCD_DIVIDER_20) || \ 650 ((__DIVIDER__) == LCD_DIVIDER_21) || \ 651 ((__DIVIDER__) == LCD_DIVIDER_22) || \ 652 ((__DIVIDER__) == LCD_DIVIDER_23) || \ 653 ((__DIVIDER__) == LCD_DIVIDER_24) || \ 654 ((__DIVIDER__) == LCD_DIVIDER_25) || \ 655 ((__DIVIDER__) == LCD_DIVIDER_26) || \ 656 ((__DIVIDER__) == LCD_DIVIDER_27) || \ 657 ((__DIVIDER__) == LCD_DIVIDER_28) || \ 658 ((__DIVIDER__) == LCD_DIVIDER_29) || \ 659 ((__DIVIDER__) == LCD_DIVIDER_30) || \ 660 ((__DIVIDER__) == LCD_DIVIDER_31)) 662 #define IS_LCD_DUTY(__DUTY__) (((__DUTY__) == LCD_DUTY_STATIC) || \ 663 ((__DUTY__) == LCD_DUTY_1_2) || \ 664 ((__DUTY__) == LCD_DUTY_1_3) || \ 665 ((__DUTY__) == LCD_DUTY_1_4) || \ 666 ((__DUTY__) == LCD_DUTY_1_8)) 668 #define IS_LCD_BIAS(__BIAS__) (((__BIAS__) == LCD_BIAS_1_4) || \ 669 ((__BIAS__) == LCD_BIAS_1_2) || \ 670 ((__BIAS__) == LCD_BIAS_1_3)) 672 #define IS_LCD_VOLTAGE_SOURCE(SOURCE) (((SOURCE) == LCD_VOLTAGESOURCE_INTERNAL) || \ 673 ((SOURCE) == LCD_VOLTAGESOURCE_EXTERNAL)) 676 #define IS_LCD_PULSE_ON_DURATION(__DURATION__) (((__DURATION__) == LCD_PULSEONDURATION_0) || \ 677 ((__DURATION__) == LCD_PULSEONDURATION_1) || \ 678 ((__DURATION__) == LCD_PULSEONDURATION_2) || \ 679 ((__DURATION__) == LCD_PULSEONDURATION_3) || \ 680 ((__DURATION__) == LCD_PULSEONDURATION_4) || \ 681 ((__DURATION__) == LCD_PULSEONDURATION_5) || \ 682 ((__DURATION__) == LCD_PULSEONDURATION_6) || \ 683 ((__DURATION__) == LCD_PULSEONDURATION_7)) 685 #define IS_LCD_DEAD_TIME(__TIME__) (((__TIME__) == LCD_DEADTIME_0) || \ 686 ((__TIME__) == LCD_DEADTIME_1) || \ 687 ((__TIME__) == LCD_DEADTIME_2) || \ 688 ((__TIME__) == LCD_DEADTIME_3) || \ 689 ((__TIME__) == LCD_DEADTIME_4) || \ 690 ((__TIME__) == LCD_DEADTIME_5) || \ 691 ((__TIME__) == LCD_DEADTIME_6) || \ 692 ((__TIME__) == LCD_DEADTIME_7)) 694 #define IS_LCD_BLINK_MODE(__MODE__) (((__MODE__) == LCD_BLINKMODE_OFF) || \ 695 ((__MODE__) == LCD_BLINKMODE_SEG0_COM0) || \ 696 ((__MODE__) == LCD_BLINKMODE_SEG0_ALLCOM) || \ 697 ((__MODE__) == LCD_BLINKMODE_ALLSEG_ALLCOM)) 699 #define IS_LCD_BLINK_FREQUENCY(__FREQUENCY__) (((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV8) || \ 700 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV16) || \ 701 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV32) || \ 702 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV64) || \ 703 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV128) || \ 704 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV256) || \ 705 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV512) || \ 706 ((__FREQUENCY__) == LCD_BLINKFREQUENCY_DIV1024)) 708 #define IS_LCD_CONTRAST(__CONTRAST__) (((__CONTRAST__) == LCD_CONTRASTLEVEL_0) || \ 709 ((__CONTRAST__) == LCD_CONTRASTLEVEL_1) || \ 710 ((__CONTRAST__) == LCD_CONTRASTLEVEL_2) || \ 711 ((__CONTRAST__) == LCD_CONTRASTLEVEL_3) || \ 712 ((__CONTRAST__) == LCD_CONTRASTLEVEL_4) || \ 713 ((__CONTRAST__) == LCD_CONTRASTLEVEL_5) || \ 714 ((__CONTRAST__) == LCD_CONTRASTLEVEL_6) || \ 715 ((__CONTRAST__) == LCD_CONTRASTLEVEL_7)) 717 #define IS_LCD_RAM_REGISTER(__REGISTER__) (((__REGISTER__) == LCD_RAM_REGISTER0) || \ 718 ((__REGISTER__) == LCD_RAM_REGISTER1) || \ 719 ((__REGISTER__) == LCD_RAM_REGISTER2) || \ 720 ((__REGISTER__) == LCD_RAM_REGISTER3) || \ 721 ((__REGISTER__) == LCD_RAM_REGISTER4) || \ 722 ((__REGISTER__) == LCD_RAM_REGISTER5) || \ 723 ((__REGISTER__) == LCD_RAM_REGISTER6) || \ 724 ((__REGISTER__) == LCD_RAM_REGISTER7) || \ 725 ((__REGISTER__) == LCD_RAM_REGISTER8) || \ 726 ((__REGISTER__) == LCD_RAM_REGISTER9) || \ 727 ((__REGISTER__) == LCD_RAM_REGISTER10) || \ 728 ((__REGISTER__) == LCD_RAM_REGISTER11) || \ 729 ((__REGISTER__) == LCD_RAM_REGISTER12) || \ 730 ((__REGISTER__) == LCD_RAM_REGISTER13) || \ 731 ((__REGISTER__) == LCD_RAM_REGISTER14) || \ 732 ((__REGISTER__) == LCD_RAM_REGISTER15)) 734 #define IS_LCD_HIGH_DRIVE(__VALUE__) (((__VALUE__) == LCD_HIGHDRIVE_DISABLE) || \ 735 ((__VALUE__) == LCD_HIGHDRIVE_ENABLE)) 737 #define IS_LCD_MUX_SEGMENT(__VALUE__) (((__VALUE__) == LCD_MUXSEGMENT_ENABLE) || \ 738 ((__VALUE__) == LCD_MUXSEGMENT_DISABLE)) HAL_StatusTypeDef HAL_LCD_Init(LCD_HandleTypeDef *hlcd)
Initialize the LCD peripheral according to the specified parameters in the LCD_InitStruct and initial...
HAL_StatusTypeDef HAL_LCD_DeInit(LCD_HandleTypeDef *hlcd)
DeInitialize the LCD peripheral.
HAL_LCD_StateTypeDef
HAL LCD State structures definition.
This file contains HAL common defines, enumeration, macros and structures definitions.
__IO HAL_LCD_StateTypeDef State
HAL_StatusTypeDef HAL_LCD_Write(LCD_HandleTypeDef *hlcd, uint32_t RAMRegisterIndex, uint32_t RAMRegisterMask, uint32_t Data)
Write a word in the specific LCD RAM.
HAL_StatusTypeDef HAL_LCD_Clear(LCD_HandleTypeDef *hlcd)
Clear the LCD RAM registers.
void HAL_LCD_MspInit(LCD_HandleTypeDef *hlcd)
Initialize the LCD MSP.
uint32_t HAL_LCD_GetError(LCD_HandleTypeDef *hlcd)
Return the LCD error code.
UART handle Structure definition.
HAL_LockTypeDef
HAL Lock structures definition.
LCD Init structure definition.
void HAL_LCD_MspDeInit(LCD_HandleTypeDef *hlcd)
DeInitialize the LCD MSP.
HAL_StatusTypeDef HAL_LCD_UpdateDisplayRequest(LCD_HandleTypeDef *hlcd)
Enable the Update Display Request.
HAL_LCD_StateTypeDef HAL_LCD_GetState(LCD_HandleTypeDef *hlcd)
Return the LCD handle state.
HAL_StatusTypeDef LCD_WaitForSynchro(LCD_HandleTypeDef *hlcd)
Wait until the LCD FCR register is synchronized in the LCDCLK domain. This function must be called af...