/** ******************************************************************************************************* * @file fm33lg0xx_fl_lcd.h * @author FMSH Application Team * @brief Head file of LCD FL Module ******************************************************************************************************* * @attention * * Copyright (c) [2021] [Fudan Microelectronics] * THIS SOFTWARE is licensed under Mulan PSL v2. * You can use this software according to the terms and conditions of the Mulan PSL v2. * You may obtain a copy of Mulan PSL v2 at: * http://license.coscl.org.cn/MulanPSL2 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. * See the Mulan PSL v2 for more details. * ******************************************************************************************************* */ /* Define to prevent recursive inclusion---------------------------------------------------------------*/ #ifndef __FM33LG0XX_FL_LCD_H #define __FM33LG0XX_FL_LCD_H #ifdef __cplusplus extern "C" { #endif /* Includes -------------------------------------------------------------------------------------------*/ #include "fm33lg0xx_fl_def.h" /** @addtogroup FM33LG0XX_FL_Driver * @{ */ /** @defgroup LCD LCD * @brief LCD FL driver * @{ */ /* Exported types -------------------------------------------------------------------------------------*/ /** @defgroup LCD_FL_ES_INIT LCD Exported Init structures * @{ */ /** * @brief FL LCD Init Sturcture definition */ typedef struct { /*! 电流源大小控制 */ uint32_t biasCurrent; /*! 驱动模式 */ uint32_t mode; /*! 偏执电平 */ uint32_t biasVoltage; /*! 偏执类型 */ uint32_t biasMode; /*! 驱动波形 */ uint32_t waveform; /*! COM数目 */ uint32_t COMxNum; /*! 显示频率 */ uint32_t displayFreq; /*! 显示闪烁点亮时间(ms) */ uint32_t flickOnTime; /*! 显示闪烁熄灭时间(ms) */ uint32_t flickOffTime; } FL_LCD_InitTypeDef; /** * @} */ /* Exported constants ---------------------------------------------------------------------------------*/ /** @defgroup LCD_FL_Exported_Constants LCD Exported Constants * @{ */ #define LCD_CR_SCFSEL_Pos (20U) #define LCD_CR_SCFSEL_Msk (0x7U << LCD_CR_SCFSEL_Pos) #define LCD_CR_SCFSEL LCD_CR_SCFSEL_Msk #define LCD_CR_SC_CTRL_Pos (18U) #define LCD_CR_SC_CTRL_Msk (0x3U << LCD_CR_SC_CTRL_Pos) #define LCD_CR_SC_CTRL LCD_CR_SC_CTRL_Msk #define LCD_CR_IC_CTRL_Pos (16U) #define LCD_CR_IC_CTRL_Msk (0x3U << LCD_CR_IC_CTRL_Pos) #define LCD_CR_IC_CTRL LCD_CR_IC_CTRL_Msk #define LCD_CR_ENMODE_Pos (15U) #define LCD_CR_ENMODE_Msk (0x1U << LCD_CR_ENMODE_Pos) #define LCD_CR_ENMODE LCD_CR_ENMODE_Msk #define LCD_CR_FLICK_Pos (14U) #define LCD_CR_FLICK_Msk (0x1U << LCD_CR_FLICK_Pos) #define LCD_CR_FLICK LCD_CR_FLICK_Msk #define LCD_CR_BIAS_Pos (8U) #define LCD_CR_BIAS_Msk (0xfU << LCD_CR_BIAS_Pos) #define LCD_CR_BIAS LCD_CR_BIAS_Msk #define LCD_CR_BIASMD_Pos (5U) #define LCD_CR_BIASMD_Msk (0x1U << LCD_CR_BIASMD_Pos) #define LCD_CR_BIASMD LCD_CR_BIASMD_Msk #define LCD_CR_ANTIPOLAR_Pos (4U) #define LCD_CR_ANTIPOLAR_Msk (0x1U << LCD_CR_ANTIPOLAR_Pos) #define LCD_CR_ANTIPOLAR LCD_CR_ANTIPOLAR_Msk #define LCD_CR_WFT_Pos (3U) #define LCD_CR_WFT_Msk (0x1U << LCD_CR_WFT_Pos) #define LCD_CR_WFT LCD_CR_WFT_Msk #define LCD_CR_LMUX_Pos (1U) #define LCD_CR_LMUX_Msk (0x3U << LCD_CR_LMUX_Pos) #define LCD_CR_LMUX LCD_CR_LMUX_Msk #define LCD_CR_EN_Pos (0U) #define LCD_CR_EN_Msk (0x1U << LCD_CR_EN_Pos) #define LCD_CR_EN LCD_CR_EN_Msk #define LCD_FCR_DF_Pos (0U) #define LCD_FCR_DF_Msk (0xffU << LCD_FCR_DF_Pos) #define LCD_FCR_DF LCD_FCR_DF_Msk #define LCD_FLKT_TOFF_Pos (8U) #define LCD_FLKT_TOFF_Msk (0xffU << LCD_FLKT_TOFF_Pos) #define LCD_FLKT_TOFF LCD_FLKT_TOFF_Msk #define LCD_FLKT_TON_Pos (0U) #define LCD_FLKT_TON_Msk (0xffU << LCD_FLKT_TON_Pos) #define LCD_FLKT_TON LCD_FLKT_TON_Msk #define LCD_IER_DONIE_Pos (1U) #define LCD_IER_DONIE_Msk (0x1U << LCD_IER_DONIE_Pos) #define LCD_IER_DONIE LCD_IER_DONIE_Msk #define LCD_IER_DOFFIE_Pos (0U) #define LCD_IER_DOFFIE_Msk (0x1U << LCD_IER_DOFFIE_Pos) #define LCD_IER_DOFFIE LCD_IER_DOFFIE_Msk #define LCD_ISR_DONIF_Pos (1U) #define LCD_ISR_DONIF_Msk (0x1U << LCD_ISR_DONIF_Pos) #define LCD_ISR_DONIF LCD_ISR_DONIF_Msk #define LCD_ISR_DOFFIF_Pos (0U) #define LCD_ISR_DOFFIF_Msk (0x1U << LCD_ISR_DOFFIF_Pos) #define LCD_ISR_DOFFIF LCD_ISR_DOFFIF_Msk #define LCD_DATA0_DSDA_Pos (0U) #define LCD_DATA0_DSDA_Msk (0xffffffffU << LCD_DATA0_DSDA_Pos) #define LCD_DATA0_DSDA LCD_DATA0_DSDA_Msk #define FL_LCD_DATA_REG0 (0x0U << 0U) #define FL_LCD_DATA_REG1 (0x1U << 0U) #define FL_LCD_DATA_REG2 (0x2U << 0U) #define FL_LCD_DATA_REG3 (0x3U << 0U) #define FL_LCD_DATA_REG4 (0x4U << 0U) #define FL_LCD_DATA_REG5 (0x5U << 0U) #define FL_LCD_DATA_REG6 (0x6U << 0U) #define FL_LCD_DATA_REG7 (0x7U << 0U) #define FL_LCD_DATA_REG8 (0x8U << 0U) #define FL_LCD_DATA_REG9 (0x9U << 0U) #define FL_LCD_COMEN_COM0 (0x1U << 0U) #define FL_LCD_COMEN_COM1 (0x1U << 1U) #define FL_LCD_COMEN_COM2 (0x1U << 2U) #define FL_LCD_COMEN_COM3 (0x1U << 3U) #define FL_LCD_COMEN_COM4 (0x1U << 28U) #define FL_LCD_COMEN_COM5 (0x1U << 29U) #define FL_LCD_COMEN_COM6 (0x1U << 30U) #define FL_LCD_COMEN_COM7 (0x1U << 31U) #define FL_LCD_SEGEN0_SEG0 (0x1U << 0U) #define FL_LCD_SEGEN0_SEG1 (0x1U << 1U) #define FL_LCD_SEGEN0_SEG2 (0x1U << 2U) #define FL_LCD_SEGEN0_SEG3 (0x1U << 3U) #define FL_LCD_SEGEN0_SEG4 (0x1U << 4U) #define FL_LCD_SEGEN0_SEG5 (0x1U << 5U) #define FL_LCD_SEGEN0_SEG6 (0x1U << 6U) #define FL_LCD_SEGEN0_SEG7 (0x1U << 7U) #define FL_LCD_SEGEN0_SEG8 (0x1U << 8U) #define FL_LCD_SEGEN0_SEG9 (0x1U << 9U) #define FL_LCD_SEGEN0_SEG10 (0x1U << 10U) #define FL_LCD_SEGEN0_SEG11 (0x1U << 11U) #define FL_LCD_SEGEN0_SEG12 (0x1U << 12U) #define FL_LCD_SEGEN0_SEG13 (0x1U << 13U) #define FL_LCD_SEGEN0_SEG14 (0x1U << 14U) #define FL_LCD_SEGEN0_SEG15 (0x1U << 15U) #define FL_LCD_SEGEN0_SEG16 (0x1U << 16U) #define FL_LCD_SEGEN0_SEG17 (0x1U << 17U) #define FL_LCD_SEGEN0_SEG18 (0x1U << 18U) #define FL_LCD_SEGEN0_SEG19 (0x1U << 19U) #define FL_LCD_SEGEN0_SEG20 (0x1U << 20U) #define FL_LCD_SEGEN0_SEG21 (0x1U << 21U) #define FL_LCD_SEGEN0_SEG22 (0x1U << 22U) #define FL_LCD_SEGEN0_SEG23 (0x1U << 23U) #define FL_LCD_SEGEN0_SEG24 (0x1U << 24U) #define FL_LCD_SEGEN0_SEG25 (0x1U << 25U) #define FL_LCD_SEGEN0_SEG26 (0x1U << 26U) #define FL_LCD_SEGEN0_SEG27 (0x1U << 27U) #define FL_LCD_SEGEN0_SEG28 (0x1U << 28U) #define FL_LCD_SEGEN0_SEG29 (0x1U << 29U) #define FL_LCD_SEGEN0_SEG30 (0x1U << 30U) #define FL_LCD_SEGEN0_SEG31 (0x1U << 31U) #define FL_LCD_SEGEN1_SEG0 (0x1U << 0U) #define FL_LCD_SEGEN1_SEG1 (0x1U << 1U) #define FL_LCD_SEGEN1_SEG2 (0x1U << 2U) #define FL_LCD_SEGEN1_SEG3 (0x1U << 3U) #define FL_LCD_SEGEN1_SEG4 (0x1U << 4U) #define FL_LCD_SEGEN1_SEG5 (0x1U << 5U) #define FL_LCD_SEGEN1_SEG6 (0x1U << 6U) #define FL_LCD_SEGEN1_SEG7 (0x1U << 7U) #define FL_LCD_SEGEN1_SEG8 (0x1U << 8U) #define FL_LCD_SEGEN1_SEG9 (0x1U << 9U) #define FL_LCD_SEGEN1_SEG10 (0x1U << 10U) #define FL_LCD_SEGEN1_SEG11 (0x1U << 11U) #define FL_LCD_CAP_DRIVER_FREQ_FRAME_COM (0x0U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV8 (0x1U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV16 (0x2U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV32 (0x3U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV64 (0x4U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV128 (0x5U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV256 (0x6U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV512 (0x7U << LCD_CR_SCFSEL_Pos) #define FL_LCD_CAP_DRIVER_MODE_ONE (0x0U << LCD_CR_SC_CTRL_Pos) #define FL_LCD_CAP_DRIVER_MODE_TWO (0x1U << LCD_CR_SC_CTRL_Pos) #define FL_LCD_CAP_DRIVER_MODE_FOUR (0x2U << LCD_CR_SC_CTRL_Pos) #define FL_LCD_CAP_DRIVER_MODE_MANY (0x3U << LCD_CR_SC_CTRL_Pos) #define FL_LCD_BIAS_CURRENT_VERYHIGH (0x0U << LCD_CR_IC_CTRL_Pos) #define FL_LCD_BIAS_CURRENT_HIGH (0x1U << LCD_CR_IC_CTRL_Pos) #define FL_LCD_BIAS_CURRENT_MEDIUM (0x2U << LCD_CR_IC_CTRL_Pos) #define FL_LCD_BIAS_CURRENT_LOW (0x3U << LCD_CR_IC_CTRL_Pos) #define FL_LCD_DRIVER_MODE_INNER_RESISTER (0x1U << LCD_CR_ENMODE_Pos) #define FL_LCD_DRIVER_MODE_OUTER_CAPACITY (0x0U << LCD_CR_ENMODE_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL0 (0x0U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL1 (0x1U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL2 (0x2U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL3 (0x3U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL4 (0x4U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL5 (0x5U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL6 (0x6U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL7 (0x7U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL8 (0x8U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL9 (0x9U << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL10 (0xaU << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL11 (0xbU << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL12 (0xcU << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL13 (0xdU << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL14 (0xeU << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_VOLTAGE_LEVEL15 (0xfU << LCD_CR_BIAS_Pos) #define FL_LCD_BIAS_MODE_4BIAS (0x0U << LCD_CR_BIASMD_Pos) #define FL_LCD_BIAS_MODE_3BIAS (0x1U << LCD_CR_BIASMD_Pos) #define FL_LCD_ANTIPOLAR_FLOATING (0x0U << LCD_CR_ANTIPOLAR_Pos) #define FL_LCD_ANTIPOLAR_GND (0x1U << LCD_CR_ANTIPOLAR_Pos) #define FL_LCD_WAVEFORM_TYPEA (0x0U << LCD_CR_WFT_Pos) #define FL_LCD_WAVEFORM_TYPEB (0x1U << LCD_CR_WFT_Pos) #define FL_LCD_COM_NUM_4COM (0x0U << LCD_CR_LMUX_Pos) #define FL_LCD_COM_NUM_6COM (0x1U << LCD_CR_LMUX_Pos) #define FL_LCD_COM_NUM_8COM (0x2U << LCD_CR_LMUX_Pos) /** * @} */ /* Exported functions ---------------------------------------------------------------------------------*/ /** @defgroup LCD_FL_Exported_Functions LCD Exported Functions * @{ */ /** * @brief Set Capacity Driver Freq * @rmtoll CR SCFSEL FL_LCD_SetCapDriverFreq * @param LCDx LCD instance * @param freq This parameter can be one of the following values: * @arg @ref FL_LCD_CAP_DRIVER_FREQ_FRAME_COM * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV8 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV16 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV32 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV64 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV128 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV256 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV512 * @retval None */ __STATIC_INLINE void FL_LCD_SetCapDriverFreq(LCD_Type *LCDx, uint32_t freq) { MODIFY_REG(LCDx->CR, LCD_CR_SCFSEL_Msk, freq); } /** * @brief Get Capacity Driver Freq * @rmtoll CR SCFSEL FL_LCD_GetCapDriverFreq * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_CAP_DRIVER_FREQ_FRAME_COM * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV8 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV16 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV32 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV64 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV128 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV256 * @arg @ref FL_LCD_CAP_DRIVER_FREQ_LSCLK_DIV512 */ __STATIC_INLINE uint32_t FL_LCD_GetCapDriverFreq(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_SCFSEL_Msk)); } /** * @brief Set Capacity Driver Mode * @rmtoll CR SC_CTRL FL_LCD_SetCapDriverMode * @param LCDx LCD instance * @param mode This parameter can be one of the following values: * @arg @ref FL_LCD_CAP_DRIVER_MODE_ONE * @arg @ref FL_LCD_CAP_DRIVER_MODE_TWO * @arg @ref FL_LCD_CAP_DRIVER_MODE_FOUR * @arg @ref FL_LCD_CAP_DRIVER_MODE_MANY * @retval None */ __STATIC_INLINE void FL_LCD_SetCapDriverMode(LCD_Type *LCDx, uint32_t mode) { MODIFY_REG(LCDx->CR, LCD_CR_SC_CTRL_Msk, mode); } /** * @brief Get Capacity Driver Mode * @rmtoll CR SC_CTRL FL_LCD_GetCapDriverMode * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_CAP_DRIVER_MODE_ONE * @arg @ref FL_LCD_CAP_DRIVER_MODE_TWO * @arg @ref FL_LCD_CAP_DRIVER_MODE_FOUR * @arg @ref FL_LCD_CAP_DRIVER_MODE_MANY */ __STATIC_INLINE uint32_t FL_LCD_GetCapDriverMode(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_SC_CTRL_Msk)); } /** * @brief Set Input Bias Current * @rmtoll CR IC_CTRL FL_LCD_SetBiasCurrent * @param LCDx LCD instance * @param current This parameter can be one of the following values: * @arg @ref FL_LCD_BIAS_CURRENT_VERYHIGH * @arg @ref FL_LCD_BIAS_CURRENT_HIGH * @arg @ref FL_LCD_BIAS_CURRENT_MEDIUM * @arg @ref FL_LCD_BIAS_CURRENT_LOW * @retval None */ __STATIC_INLINE void FL_LCD_SetBiasCurrent(LCD_Type *LCDx, uint32_t current) { MODIFY_REG(LCDx->CR, LCD_CR_IC_CTRL_Msk, current); } /** * @brief Set Input Bias Current * @rmtoll CR IC_CTRL FL_LCD_GetBiasCurrent * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_BIAS_CURRENT_VERYHIGH * @arg @ref FL_LCD_BIAS_CURRENT_HIGH * @arg @ref FL_LCD_BIAS_CURRENT_MEDIUM * @arg @ref FL_LCD_BIAS_CURRENT_LOW */ __STATIC_INLINE uint32_t FL_LCD_GetBiasCurrent(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_IC_CTRL_Msk)); } /** * @brief Set LCD Enabling Mode * @rmtoll CR ENMODE FL_LCD_SetDriverMode * @param LCDx LCD instance * @param mode This parameter can be one of the following values: * @arg @ref FL_LCD_DRIVER_MODE_INNER_RESISTER * @arg @ref FL_LCD_DRIVER_MODE_OUTER_CAPACITY * @retval None */ __STATIC_INLINE void FL_LCD_SetDriverMode(LCD_Type *LCDx, uint32_t mode) { MODIFY_REG(LCDx->CR, LCD_CR_ENMODE_Msk, mode); } /** * @brief Get LCD Enabling Mode * @rmtoll CR ENMODE FL_LCD_GetDriverMode * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_DRIVER_MODE_INNER_RESISTER * @arg @ref FL_LCD_DRIVER_MODE_OUTER_CAPACITY */ __STATIC_INLINE uint32_t FL_LCD_GetDriverMode(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_ENMODE_Msk)); } /** * @brief Enable LCD Blink * @rmtoll CR FLICK FL_LCD_EnableDisplayBlink * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_EnableDisplayBlink(LCD_Type *LCDx) { SET_BIT(LCDx->CR, LCD_CR_FLICK_Msk); } /** * @brief Disable LCD Blink * @rmtoll CR FLICK FL_LCD_DisableDisplayBlink * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_DisableDisplayBlink(LCD_Type *LCDx) { CLEAR_BIT(LCDx->CR, LCD_CR_FLICK_Msk); } /** * @brief Get LCD Blink State * @rmtoll CR FLICK FL_LCD_IsEnabledDisplayBlink * @param LCDx LCD instance * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabledDisplayBlink(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_FLICK_Msk) == LCD_CR_FLICK_Msk); } /** * @brief Set LCD Bias Voltage Select * @rmtoll CR BIAS FL_LCD_SetBiasVoltage * @param LCDx LCD instance * @param voltage This parameter can be one of the following values: * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL0 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL1 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL2 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL3 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL4 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL5 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL6 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL7 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL8 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL9 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL10 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL11 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL12 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL13 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL14 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL15 * @retval None */ __STATIC_INLINE void FL_LCD_SetBiasVoltage(LCD_Type *LCDx, uint32_t voltage) { MODIFY_REG(LCDx->CR, LCD_CR_BIAS_Msk, voltage); } /** * @brief Get LCD Bias Voltage Select * @rmtoll CR BIAS FL_LCD_GetBiasVoltage * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL0 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL1 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL2 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL3 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL4 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL5 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL6 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL7 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL8 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL9 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL10 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL11 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL12 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL13 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL14 * @arg @ref FL_LCD_BIAS_VOLTAGE_LEVEL15 */ __STATIC_INLINE uint32_t FL_LCD_GetBiasVoltage(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_BIAS_Msk)); } /** * @brief Set LCD Bias Mode * @rmtoll CR BIASMD FL_LCD_SetBiasMode * @param LCDx LCD instance * @param mode This parameter can be one of the following values: * @arg @ref FL_LCD_BIAS_MODE_4BIAS * @arg @ref FL_LCD_BIAS_MODE_3BIAS * @retval None */ __STATIC_INLINE void FL_LCD_SetBiasMode(LCD_Type *LCDx, uint32_t mode) { MODIFY_REG(LCDx->CR, LCD_CR_BIASMD_Msk, mode); } /** * @brief Get LCD Bias Mode * @rmtoll CR BIASMD FL_LCD_GetBiasMode * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_BIAS_MODE_4BIAS * @arg @ref FL_LCD_BIAS_MODE_3BIAS */ __STATIC_INLINE uint32_t FL_LCD_GetBiasMode(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_BIASMD_Msk)); } /** * @brief Set LCD Anti-Polarization * @rmtoll CR ANTIPOLAR FL_LCD_SetAntiPolar * @param LCDx LCD instance * @param state This parameter can be one of the following values: * @arg @ref FL_LCD_ANTIPOLAR_FLOATING * @arg @ref FL_LCD_ANTIPOLAR_GND * @retval None */ __STATIC_INLINE void FL_LCD_SetAntiPolar(LCD_Type *LCDx, uint32_t state) { MODIFY_REG(LCDx->CR, LCD_CR_ANTIPOLAR_Msk, state); } /** * @brief Get LCD Anti-Polarization * @rmtoll CR ANTIPOLAR FL_LCD_GetAntiPolar * @param LCDx LCD instance * @retval Returned value can be one of the following values: */ __STATIC_INLINE uint32_t FL_LCD_GetAntiPolar(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_ANTIPOLAR_Msk)); } /** * @brief Set LCD Waveform Format * @rmtoll CR WFT FL_LCD_SetWaveform * @param LCDx LCD instance * @param state This parameter can be one of the following values: * @arg @ref FL_LCD_WAVEFORM_TYPEA * @arg @ref FL_LCD_WAVEFORM_TYPEB * @retval None */ __STATIC_INLINE void FL_LCD_SetWaveform(LCD_Type *LCDx, uint32_t state) { MODIFY_REG(LCDx->CR, LCD_CR_WFT_Msk, state); } /** * @brief Get LCD Waveform Format * @rmtoll CR WFT FL_LCD_GetWaveform * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_WAVEFORM_TYPEA * @arg @ref FL_LCD_WAVEFORM_TYPEB */ __STATIC_INLINE uint32_t FL_LCD_GetWaveform(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_WFT_Msk)); } /** * @brief Set LCD Segment Line Mux * @rmtoll CR LMUX FL_LCD_SetCOMNumber * @param LCDx LCD instance * @param number This parameter can be one of the following values: * @arg @ref FL_LCD_COM_NUM_4COM * @arg @ref FL_LCD_COM_NUM_6COM * @arg @ref FL_LCD_COM_NUM_8COM * @retval None */ __STATIC_INLINE void FL_LCD_SetCOMNumber(LCD_Type *LCDx, uint32_t number) { MODIFY_REG(LCDx->CR, LCD_CR_LMUX_Msk, number); } /** * @brief Get LCD Segment Line Mux * @rmtoll CR LMUX FL_LCD_GetCOMNumber * @param LCDx LCD instance * @retval Returned value can be one of the following values: * @arg @ref FL_LCD_COM_NUM_4COM * @arg @ref FL_LCD_COM_NUM_6COM * @arg @ref FL_LCD_COM_NUM_8COM */ __STATIC_INLINE uint32_t FL_LCD_GetCOMNumber(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_LMUX_Msk)); } /** * @brief Enable LCD * @rmtoll CR EN FL_LCD_Enable * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_Enable(LCD_Type *LCDx) { SET_BIT(LCDx->CR, LCD_CR_EN_Msk); } /** * @brief Get LCD State * @rmtoll CR EN FL_LCD_IsEnabled * @param LCDx LCD instance * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabled(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->CR, LCD_CR_EN_Msk) == LCD_CR_EN_Msk); } /** * @brief Disable LCD * @rmtoll CR EN FL_LCD_Disable * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_Disable(LCD_Type *LCDx) { CLEAR_BIT(LCDx->CR, LCD_CR_EN_Msk); } /** * @brief Set LCD Display Frequency * @rmtoll FCR DF FL_LCD_WriteDisplayFrequency * @param LCDx LCD instance * @param frequency * @retval None */ __STATIC_INLINE void FL_LCD_WriteDisplayFrequency(LCD_Type *LCDx, uint32_t frequency) { MODIFY_REG(LCDx->FCR, (0xffU << 0U), (frequency << 0U)); } /** * @brief Get LCD Display Frequency * @rmtoll FCR DF FL_LCD_ReadDisplayFrequency * @param LCDx LCD instance * @retval */ __STATIC_INLINE uint32_t FL_LCD_ReadDisplayFrequency(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->FCR, (0xffU << 0U)) >> 0U); } /** * @brief Set LCD Display Off Time * @rmtoll FLKT TOFF FL_LCD_WriteDisplayOffTime * @param LCDx LCD instance * @param time * @retval None */ __STATIC_INLINE void FL_LCD_WriteDisplayOffTime(LCD_Type *LCDx, uint32_t time) { MODIFY_REG(LCDx->FLKT, (0xffU << 8U), (time << 8U)); } /** * @brief Get LCD Display Off Time * @rmtoll FLKT TOFF FL_LCD_ReadDisplayOffTime * @param LCDx LCD instance * @retval */ __STATIC_INLINE uint32_t FL_LCD_ReadDisplayOffTime(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->FLKT, (0xffU << 8U)) >> 8U); } /** * @brief Set LCD Display On Time * @rmtoll FLKT TON FL_LCD_WriteDisplayOnTime * @param LCDx LCD instance * @param time * @retval None */ __STATIC_INLINE void FL_LCD_WriteDisplayOnTime(LCD_Type *LCDx, uint32_t time) { MODIFY_REG(LCDx->FLKT, (0xffU << 0U), (time << 0U)); } /** * @brief Get LCD Display On Time * @rmtoll FLKT TON FL_LCD_ReadDisplayOnTime * @param LCDx LCD instance * @retval */ __STATIC_INLINE uint32_t FL_LCD_ReadDisplayOnTime(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->FLKT, (0xffU << 0U)) >> 0U); } /** * @brief Enable LCD Display OFF IRQ * @rmtoll IER DONIE FL_LCD_EnableIT_DisplayOff * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_EnableIT_DisplayOff(LCD_Type *LCDx) { SET_BIT(LCDx->IER, LCD_IER_DONIE_Msk); } /** * @brief Disable LCD Display OFF IRQ * @rmtoll IER DONIE FL_LCD_DisableIT_DisplayOff * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_DisableIT_DisplayOff(LCD_Type *LCDx) { CLEAR_BIT(LCDx->IER, LCD_IER_DONIE_Msk); } /** * @brief Getable LCD Display OFF IRQ * @rmtoll IER DONIE FL_LCD_IsEnabledIT_DisplayOff * @param LCDx LCD instance * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabledIT_DisplayOff(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->IER, LCD_IER_DONIE_Msk) == LCD_IER_DONIE_Msk); } /** * @brief Enable LCD Display ON Interrupt * @rmtoll IER DOFFIE FL_LCD_EnableIT_DisplayOn * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_EnableIT_DisplayOn(LCD_Type *LCDx) { SET_BIT(LCDx->IER, LCD_IER_DOFFIE_Msk); } /** * @brief Disable LCD Display ON Interrupt * @rmtoll IER DOFFIE FL_LCD_DisableIT_DisplayOn * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_DisableIT_DisplayOn(LCD_Type *LCDx) { CLEAR_BIT(LCDx->IER, LCD_IER_DOFFIE_Msk); } /** * @brief Getable LCD Display ON Interrupt * @rmtoll IER DOFFIE FL_LCD_IsEnabledIT_DisplayOn * @param LCDx LCD instance * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabledIT_DisplayOn(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->IER, LCD_IER_DOFFIE_Msk) == LCD_IER_DOFFIE_Msk); } /** * @brief Get LCD Display OFF Flag * @rmtoll ISR DONIF FL_LCD_IsActiveFlag_DisplayOff * @param LCDx LCD instance * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsActiveFlag_DisplayOff(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->ISR, LCD_ISR_DONIF_Msk) == (LCD_ISR_DONIF_Msk)); } /** * @brief Clear LCD Display OFF Flag * @rmtoll ISR DONIF FL_LCD_ClearFlag_DisplayOff * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_ClearFlag_DisplayOff(LCD_Type *LCDx) { WRITE_REG(LCDx->ISR, LCD_ISR_DONIF_Msk); } /** * @brief Get LCD Display On Flag * @rmtoll ISR DOFFIF FL_LCD_IsActiveFlag_DisplayOn * @param LCDx LCD instance * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsActiveFlag_DisplayOn(LCD_Type *LCDx) { return (uint32_t)(READ_BIT(LCDx->ISR, LCD_ISR_DOFFIF_Msk) == (LCD_ISR_DOFFIF_Msk)); } /** * @brief Clear LCD Display On Flag * @rmtoll ISR DOFFIF FL_LCD_ClearFlag_DisplayOn * @param LCDx LCD instance * @retval None */ __STATIC_INLINE void FL_LCD_ClearFlag_DisplayOn(LCD_Type *LCDx) { WRITE_REG(LCDx->ISR, LCD_ISR_DOFFIF_Msk); } /** * @brief Write LCD Display Data * @rmtoll DATA0 DSDA FL_LCD_WriteData * @param LCDx LCD instance * @param reg This parameter can be one of the following values: * @arg @ref FL_LCD_DATA_REG0 * @arg @ref FL_LCD_DATA_REG1 * @arg @ref FL_LCD_DATA_REG2 * @arg @ref FL_LCD_DATA_REG3 * @arg @ref FL_LCD_DATA_REG4 * @arg @ref FL_LCD_DATA_REG5 * @arg @ref FL_LCD_DATA_REG6 * @arg @ref FL_LCD_DATA_REG7 * @arg @ref FL_LCD_DATA_REG8 * @arg @ref FL_LCD_DATA_REG9 * @param data * @retval None */ __STATIC_INLINE void FL_LCD_WriteData(LCD_Type *LCDx, uint32_t reg, uint32_t data) { volatile uint32_t *pData = &(LCDx->DATA0); MODIFY_REG(pData[reg], LCD_DATA0_DSDA_Msk, data); } /** * @brief Read LCD Display Data * @rmtoll DATA0 DSDA FL_LCD_ReadData * @param LCDx LCD instance * @param reg This parameter can be one of the following values: * @arg @ref FL_LCD_DATA_REG0 * @arg @ref FL_LCD_DATA_REG1 * @arg @ref FL_LCD_DATA_REG2 * @arg @ref FL_LCD_DATA_REG3 * @arg @ref FL_LCD_DATA_REG4 * @arg @ref FL_LCD_DATA_REG5 * @arg @ref FL_LCD_DATA_REG6 * @arg @ref FL_LCD_DATA_REG7 * @arg @ref FL_LCD_DATA_REG8 * @arg @ref FL_LCD_DATA_REG9 * @retval */ __STATIC_INLINE uint32_t FL_LCD_ReadData(LCD_Type *LCDx, uint32_t reg) { volatile uint32_t *pData = &(LCDx->DATA0); return (uint32_t)(READ_BIT(pData[reg], LCD_DATA0_DSDA_Msk)); } /** * @brief Get LCD COMx State * @rmtoll COMEN FL_LCD_IsEnabledCOMEN * @param LCDx LCD instance * @param COM This parameter can be one of the following values: * @arg @ref FL_LCD_COMEN_COM0 * @arg @ref FL_LCD_COMEN_COM1 * @arg @ref FL_LCD_COMEN_COM2 * @arg @ref FL_LCD_COMEN_COM3 * @arg @ref FL_LCD_COMEN_COM4 * @arg @ref FL_LCD_COMEN_COM5 * @arg @ref FL_LCD_COMEN_COM6 * @arg @ref FL_LCD_COMEN_COM7 * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabledCOMEN(LCD_Type *LCDx, uint32_t COM) { if(COM < FL_LCD_COMEN_COM4) { return (uint32_t)(READ_BIT(LCDx->COMEN, ((COM & 0xffffffff) << 0x0U)) == ((COM & 0xffffffff) << 0x0U)); } else { return (uint32_t)(READ_BIT(LCDx->SEGEN0, ((COM & 0xffffffff) << 0x0U)) == ((COM & 0xffffffff) << 0x0U)); } } /** * @brief Enable LCD COMx * @rmtoll COMEN FL_LCD_EnableCOMEN * @param LCDx LCD instance * @param COM This parameter can be one of the following values: * @arg @ref FL_LCD_COMEN_COM0 * @arg @ref FL_LCD_COMEN_COM1 * @arg @ref FL_LCD_COMEN_COM2 * @arg @ref FL_LCD_COMEN_COM3 * @arg @ref FL_LCD_COMEN_COM4 * @arg @ref FL_LCD_COMEN_COM5 * @arg @ref FL_LCD_COMEN_COM6 * @arg @ref FL_LCD_COMEN_COM7 * @retval None */ __STATIC_INLINE void FL_LCD_EnableCOMEN(LCD_Type *LCDx, uint32_t COM) { if(COM < FL_LCD_COMEN_COM4) { SET_BIT(LCDx->COMEN, ((COM & 0xffffffff) << 0x0U)); } else { SET_BIT(LCDx->SEGEN0, ((COM & 0xffffffff) << 0x0U)); } } /** * @brief Disable LCD COMx * @rmtoll COMEN FL_LCD_DisableCOMEN * @param LCDx LCD instance * @param COM This parameter can be one of the following values: * @arg @ref FL_LCD_COMEN_COM0 * @arg @ref FL_LCD_COMEN_COM1 * @arg @ref FL_LCD_COMEN_COM2 * @arg @ref FL_LCD_COMEN_COM3 * @arg @ref FL_LCD_COMEN_COM4 * @arg @ref FL_LCD_COMEN_COM5 * @arg @ref FL_LCD_COMEN_COM6 * @arg @ref FL_LCD_COMEN_COM7 * @retval None */ __STATIC_INLINE void FL_LCD_DisableCOMEN(LCD_Type *LCDx, uint32_t COM) { if(COM < FL_LCD_COMEN_COM4) { CLEAR_BIT(LCDx->COMEN, ((COM & 0xffffffff) << 0x0U)); } else { CLEAR_BIT(LCDx->SEGEN0, ((COM & 0xffffffff) << 0x0U)); } } /** * @brief Get LCD SEGx State * @rmtoll SEGEN0 FL_LCD_IsEnabledSEGEN0 * @param LCDx LCD instance * @param SEG This parameter can be one of the following values: * @arg @ref FL_LCD_SEGEN0_SEG0 * @arg @ref FL_LCD_SEGEN0_SEG1 * @arg @ref FL_LCD_SEGEN0_SEG2 * @arg @ref FL_LCD_SEGEN0_SEG3 * @arg @ref FL_LCD_SEGEN0_SEG4 * @arg @ref FL_LCD_SEGEN0_SEG5 * @arg @ref FL_LCD_SEGEN0_SEG6 * @arg @ref FL_LCD_SEGEN0_SEG7 * @arg @ref FL_LCD_SEGEN0_SEG8 * @arg @ref FL_LCD_SEGEN0_SEG9 * @arg @ref FL_LCD_SEGEN0_SEG10 * @arg @ref FL_LCD_SEGEN0_SEG11 * @arg @ref FL_LCD_SEGEN0_SEG12 * @arg @ref FL_LCD_SEGEN0_SEG13 * @arg @ref FL_LCD_SEGEN0_SEG14 * @arg @ref FL_LCD_SEGEN0_SEG15 * @arg @ref FL_LCD_SEGEN0_SEG16 * @arg @ref FL_LCD_SEGEN0_SEG17 * @arg @ref FL_LCD_SEGEN0_SEG18 * @arg @ref FL_LCD_SEGEN0_SEG19 * @arg @ref FL_LCD_SEGEN0_SEG20 * @arg @ref FL_LCD_SEGEN0_SEG21 * @arg @ref FL_LCD_SEGEN0_SEG22 * @arg @ref FL_LCD_SEGEN0_SEG23 * @arg @ref FL_LCD_SEGEN0_SEG24 * @arg @ref FL_LCD_SEGEN0_SEG25 * @arg @ref FL_LCD_SEGEN0_SEG26 * @arg @ref FL_LCD_SEGEN0_SEG27 * @arg @ref FL_LCD_SEGEN0_SEG28 * @arg @ref FL_LCD_SEGEN0_SEG29 * @arg @ref FL_LCD_SEGEN0_SEG30 * @arg @ref FL_LCD_SEGEN0_SEG31 * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabledSEGEN0(LCD_Type *LCDx, uint32_t SEG) { return (uint32_t)(READ_BIT(LCDx->SEGEN0, ((SEG & 0xffffffff) << 0x0U)) == ((SEG & 0xffffffff) << 0x0U)); } /** * @brief Enable LCD SEGx * @rmtoll SEGEN0 FL_LCD_EnableSEGEN0 * @param LCDx LCD instance * @param SEG This parameter can be one of the following values: * @arg @ref FL_LCD_SEGEN0_SEG0 * @arg @ref FL_LCD_SEGEN0_SEG1 * @arg @ref FL_LCD_SEGEN0_SEG2 * @arg @ref FL_LCD_SEGEN0_SEG3 * @arg @ref FL_LCD_SEGEN0_SEG4 * @arg @ref FL_LCD_SEGEN0_SEG5 * @arg @ref FL_LCD_SEGEN0_SEG6 * @arg @ref FL_LCD_SEGEN0_SEG7 * @arg @ref FL_LCD_SEGEN0_SEG8 * @arg @ref FL_LCD_SEGEN0_SEG9 * @arg @ref FL_LCD_SEGEN0_SEG10 * @arg @ref FL_LCD_SEGEN0_SEG11 * @arg @ref FL_LCD_SEGEN0_SEG12 * @arg @ref FL_LCD_SEGEN0_SEG13 * @arg @ref FL_LCD_SEGEN0_SEG14 * @arg @ref FL_LCD_SEGEN0_SEG15 * @arg @ref FL_LCD_SEGEN0_SEG16 * @arg @ref FL_LCD_SEGEN0_SEG17 * @arg @ref FL_LCD_SEGEN0_SEG18 * @arg @ref FL_LCD_SEGEN0_SEG19 * @arg @ref FL_LCD_SEGEN0_SEG20 * @arg @ref FL_LCD_SEGEN0_SEG21 * @arg @ref FL_LCD_SEGEN0_SEG22 * @arg @ref FL_LCD_SEGEN0_SEG23 * @arg @ref FL_LCD_SEGEN0_SEG24 * @arg @ref FL_LCD_SEGEN0_SEG25 * @arg @ref FL_LCD_SEGEN0_SEG26 * @arg @ref FL_LCD_SEGEN0_SEG27 * @arg @ref FL_LCD_SEGEN0_SEG28 * @arg @ref FL_LCD_SEGEN0_SEG29 * @arg @ref FL_LCD_SEGEN0_SEG30 * @arg @ref FL_LCD_SEGEN0_SEG31 * @retval None */ __STATIC_INLINE void FL_LCD_EnableSEGEN0(LCD_Type *LCDx, uint32_t SEG) { SET_BIT(LCDx->SEGEN0, ((SEG & 0xffffffff) << 0x0U)); } /** * @brief Disable LCD SEGx * @rmtoll SEGEN0 FL_LCD_DisableSEGEN0 * @param LCDx LCD instance * @param SEG This parameter can be one of the following values: * @arg @ref FL_LCD_SEGEN0_SEG0 * @arg @ref FL_LCD_SEGEN0_SEG1 * @arg @ref FL_LCD_SEGEN0_SEG2 * @arg @ref FL_LCD_SEGEN0_SEG3 * @arg @ref FL_LCD_SEGEN0_SEG4 * @arg @ref FL_LCD_SEGEN0_SEG5 * @arg @ref FL_LCD_SEGEN0_SEG6 * @arg @ref FL_LCD_SEGEN0_SEG7 * @arg @ref FL_LCD_SEGEN0_SEG8 * @arg @ref FL_LCD_SEGEN0_SEG9 * @arg @ref FL_LCD_SEGEN0_SEG10 * @arg @ref FL_LCD_SEGEN0_SEG11 * @arg @ref FL_LCD_SEGEN0_SEG12 * @arg @ref FL_LCD_SEGEN0_SEG13 * @arg @ref FL_LCD_SEGEN0_SEG14 * @arg @ref FL_LCD_SEGEN0_SEG15 * @arg @ref FL_LCD_SEGEN0_SEG16 * @arg @ref FL_LCD_SEGEN0_SEG17 * @arg @ref FL_LCD_SEGEN0_SEG18 * @arg @ref FL_LCD_SEGEN0_SEG19 * @arg @ref FL_LCD_SEGEN0_SEG20 * @arg @ref FL_LCD_SEGEN0_SEG21 * @arg @ref FL_LCD_SEGEN0_SEG22 * @arg @ref FL_LCD_SEGEN0_SEG23 * @arg @ref FL_LCD_SEGEN0_SEG24 * @arg @ref FL_LCD_SEGEN0_SEG25 * @arg @ref FL_LCD_SEGEN0_SEG26 * @arg @ref FL_LCD_SEGEN0_SEG27 * @arg @ref FL_LCD_SEGEN0_SEG28 * @arg @ref FL_LCD_SEGEN0_SEG29 * @arg @ref FL_LCD_SEGEN0_SEG30 * @arg @ref FL_LCD_SEGEN0_SEG31 * @retval None */ __STATIC_INLINE void FL_LCD_DisableSEGEN0(LCD_Type *LCDx, uint32_t SEG) { CLEAR_BIT(LCDx->SEGEN0, ((SEG & 0xffffffff) << 0x0U)); } /** * @brief Get LCD SEGx State * @rmtoll SEGEN1 FL_LCD_IsEnabledSEGEN1 * @param LCDx LCD instance * @param SEG This parameter can be one of the following values: * @arg @ref FL_LCD_SEGEN1_SEG0 * @arg @ref FL_LCD_SEGEN1_SEG1 * @arg @ref FL_LCD_SEGEN1_SEG2 * @arg @ref FL_LCD_SEGEN1_SEG3 * @arg @ref FL_LCD_SEGEN1_SEG4 * @arg @ref FL_LCD_SEGEN1_SEG5 * @arg @ref FL_LCD_SEGEN1_SEG6 * @arg @ref FL_LCD_SEGEN1_SEG7 * @arg @ref FL_LCD_SEGEN1_SEG8 * @arg @ref FL_LCD_SEGEN1_SEG9 * @arg @ref FL_LCD_SEGEN1_SEG10 * @arg @ref FL_LCD_SEGEN1_SEG11 * @retval State of bit (1 or 0). */ __STATIC_INLINE uint32_t FL_LCD_IsEnabledSEGEN1(LCD_Type *LCDx, uint32_t SEG) { return (uint32_t)(READ_BIT(LCDx->SEGEN1, ((SEG & 0xffffffff) << 0x0U)) == ((SEG & 0xffffffff) << 0x0U)); } /** * @brief Enable LCD SEGx * @rmtoll SEGEN1 FL_LCD_EnableSEGEN1 * @param LCDx LCD instance * @param SEG This parameter can be one of the following values: * @arg @ref FL_LCD_SEGEN1_SEG0 * @arg @ref FL_LCD_SEGEN1_SEG1 * @arg @ref FL_LCD_SEGEN1_SEG2 * @arg @ref FL_LCD_SEGEN1_SEG3 * @arg @ref FL_LCD_SEGEN1_SEG4 * @arg @ref FL_LCD_SEGEN1_SEG5 * @arg @ref FL_LCD_SEGEN1_SEG6 * @arg @ref FL_LCD_SEGEN1_SEG7 * @arg @ref FL_LCD_SEGEN1_SEG8 * @arg @ref FL_LCD_SEGEN1_SEG9 * @arg @ref FL_LCD_SEGEN1_SEG10 * @arg @ref FL_LCD_SEGEN1_SEG11 * @retval None */ __STATIC_INLINE void FL_LCD_EnableSEGEN1(LCD_Type *LCDx, uint32_t SEG) { SET_BIT(LCDx->SEGEN1, ((SEG & 0xffffffff) << 0x0U)); } /** * @brief Disable LCD SEGx * @rmtoll SEGEN1 FL_LCD_DisableSEGEN1 * @param LCDx LCD instance * @param SEG This parameter can be one of the following values: * @arg @ref FL_LCD_SEGEN1_SEG0 * @arg @ref FL_LCD_SEGEN1_SEG1 * @arg @ref FL_LCD_SEGEN1_SEG2 * @arg @ref FL_LCD_SEGEN1_SEG3 * @arg @ref FL_LCD_SEGEN1_SEG4 * @arg @ref FL_LCD_SEGEN1_SEG5 * @arg @ref FL_LCD_SEGEN1_SEG6 * @arg @ref FL_LCD_SEGEN1_SEG7 * @arg @ref FL_LCD_SEGEN1_SEG8 * @arg @ref FL_LCD_SEGEN1_SEG9 * @arg @ref FL_LCD_SEGEN1_SEG10 * @arg @ref FL_LCD_SEGEN1_SEG11 * @retval None */ __STATIC_INLINE void FL_LCD_DisableSEGEN1(LCD_Type *LCDx, uint32_t SEG) { CLEAR_BIT(LCDx->SEGEN1, ((SEG & 0xffffffff) << 0x0U)); } /** * @} */ /** @defgroup LCD_FL_EF_Init Initialization and de-initialization functions * @{ */ FL_ErrorStatus FL_LCD_DeInit(LCD_Type *LCDx); void FL_LCD_StructInit(FL_LCD_InitTypeDef *initStruct); FL_ErrorStatus FL_LCD_Init(LCD_Type *LCDx, FL_LCD_InitTypeDef *initStruct); void FL_LCD_4COMDisplay(uint32_t *display, uint8_t com, uint8_t seg, uint8_t state); void FL_LCD_6COMDisplay(uint32_t *display, uint8_t com, uint8_t seg, uint8_t state); void FL_LCD_8COMDisplay(uint32_t *display, uint8_t com, uint8_t seg, uint8_t state); /** * @} */ /** * @} */ /** * @} */ #ifdef __cplusplus } #endif #endif /* __FM33LG0XX_FL_LCD_H*/ /*************************Py_Code_Generator Version: 0.1-0.14-0.1 @ 2021-04-25*************************/ /*************************(C) COPYRIGHT Fudan Microelectronics **** END OF FILE*************************/