HC32L17x的LL驱动库之lcd

#include "hc32l1xx_ll_lcd.h"

///
//函        数: 
//功        能: 
//输入参    数: 
//输出参    数: 
//说        明: 
//

uint8_t LL_LCD_DeInit(LCD_TypeDef* LCDx)
{
#if defined(LCD)
    if (LCDx == LCD)
    {
        LL_PER0_GRP1_ForceReset(LL_PER0_GRP1_PERIPH_LCD);
        LL_PER0_GRP1_ReleaseReset(LL_PER0_GRP1_PERIPH_LCD);
        goto GoExit;
    }
#endif
    return 1;
    //---退出清零寄存器值
GoExit:
    return 0;
}


///
//函        数: 
//功        能: 
//输入参    数: 
//输出参    数: 
//说        明: 
//

void LL_LCD_StructInit(LL_LCD_InitTypeDef* LCD_InitStruct)
{
    LCD_InitStruct->Prescaler= LL_LCD_CPCLK_16K;
    LCD_InitStruct->Divider= LL_LCD_CLK_128HZ;
    LCD_InitStruct->Duty=LL_LCD_DUTY_4;
    LCD_InitStruct->Bias=LL_LCD_BIAS_3;
    LCD_InitStruct->Mode = LL_LCD_MODE_0;
    LCD_InitStruct->ClockSource = LL_LCD_CLK_SOURCE_RCL;

    LCD_InitStruct->VoltageSource=LL_LCD_BSEL_EXT_RES;
    LCD_InitStruct->Contrast=LL_LCD_CONTRAST_0;
    LCD_InitStruct->BlinkMode=LL_LCD_BLINK_DISABLE;
    LCD_InitStruct->BlinkFrequency=LL_LCD_BLINK_CNT_1;
    LCD_InitStruct->MuxSegment=LL_LCD_MUX_DISABLE;
}

///
//函        数: 
//功        能: 
//输入参    数: 
//输出参    数: 
//说        明: 
//

uint8_t LL_LCD_Init(LCD_TypeDef* LCDx, LL_LCD_InitTypeDef* LCD_InitStruct)
{
    ---设置电压泵时钟频率
    //LL_LCD_SetClkFrequency(LCDx,LCD_InitStruct->Prescaler);
    ---设置扫描频率
    //LL_LCD_SetScanFrequency(LCDx, LCD_InitStruct->Divider);
    ---设置Bias
    //LL_LCD_SetBias(LCDx, LCD_InitStruct->Bias);
    ---设置Duty
    //LL_LCD_SetDuty(LCDx, LCD_InitStruct->Duty);
    ---设置电压来源
    //LL_LCD_SetBsel(LCDx, LCD_InitStruct->VoltageSource);
    ---设置电压幅度
    //LL_LCD_SetContrasl(LCDx, LCD_InitStruct->Contrast);
    //---配置CR0
    WRITE_REG(LCDx->CR0,
        LCD_InitStruct->Prescaler |
        LCD_InitStruct->Divider|
        LCD_InitStruct->Bias|
        LCD_InitStruct->Duty|
        LCD_InitStruct->VoltageSource|
        LCD_InitStruct->Contrast
    );

    //---分压方式
    if (LCD_InitStruct->VoltageSource == LL_LCD_BSEL_EXT_RES)
    {
        LL_LCD_EnableMUX(LCDx);
    }
    else
    {
        //---复用模式
        if (LCD_InitStruct->MuxSegment == LL_LCD_MUX_DISABLE)
        {
            LL_LCD_DisableMUX(LCDx);
        }
        else
        {
            LL_LCD_EnableMUX(LCDx);
        }
    }
    //---闪屏设置
    if (LCD_InitStruct->BlinkMode == LL_LCD_BLINK_DISABLE)
    {
        LL_LCD_DisableBlink(LCDx);
    }
    else
    {
        LL_LCD_EnableBlink(LCDx);
    }
    //---闪屏周期
    LL_LCD_SetBlinkCnt(LCDx, LCD_InitStruct->BlinkFrequency);
    //---设置模式
    LL_LCD_SetMode(LCDx, LCD_InitStruct->Mode);
    //---设置时钟源
    LL_LCD_SetClkSource(LCDx, LCD_InitStruct->ClockSource);
    return 0;
}
#ifndef HC32L1XX_LL_LCD_H_
#define HC32L1XX_LL_LCD_H_

#ifdef __cplusplus
extern "C" {
#endif 
    
    #include "hc32l1xx.h"
    #include "hc32l1xx_ll_bus.h"
    ///

    #define LL_LCD_CONTRAST_0                        LCD_CR0_CONTRAST_0    
    #define LL_LCD_CONTRAST_1                        LCD_CR0_CONTRAST_1    
    #define LL_LCD_CONTRAST_2                        LCD_CR0_CONTRAST_2    
    #define LL_LCD_CONTRAST_3                        LCD_CR0_CONTRAST_3    
    #define LL_LCD_CONTRAST_4                        LCD_CR0_CONTRAST_4    
    #define LL_LCD_CONTRAST_5                        LCD_CR0_CONTRAST_5    
    #define LL_LCD_CONTRAST_6                        LCD_CR0_CONTRAST_6    
    #define LL_LCD_CONTRAST_7                        LCD_CR0_CONTRAST_7    
    #define LL_LCD_CONTRAST_8                        LCD_CR0_CONTRAST_8    
    #define LL_LCD_CONTRAST_9                        LCD_CR0_CONTRAST_9    
    #define LL_LCD_CONTRAST_10                        LCD_CR0_CONTRAST_10    
    #define LL_LCD_CONTRAST_11                        LCD_CR0_CONTRAST_11    
    #define LL_LCD_CONTRAST_12                        LCD_CR0_CONTRAST_12    
    #define LL_LCD_CONTRAST_13                        LCD_CR0_CONTRAST_13    
    #define LL_LCD_CONTRAST_14                        LCD_CR0_CONTRAST_14    
    #define LL_LCD_CONTRAST_15                        LCD_CR0_CONTRAST_15    

    #define LL_LCD_BSEL_IN_RES_HIGH_POWER            LCD_CR0_BSEL_IN_RES_HIGH_POWER    
    #define LL_LCD_BSEL_IN_RES_LOW_POWER            LCD_CR0_BSEL_IN_RES_LOW_POWER    
    #define LL_LCD_BSEL_IN_RES_MIDDLE_POWER            LCD_CR0_BSEL_IN_RES_MIDDLE_POWER
    #define LL_LCD_BSEL_EXT_CAP                        LCD_CR0_BSEL_EXT_CAP            
    #define LL_LCD_BSEL_EXT_RES                        LCD_CR0_BSEL_EXT_RES            
    #define LL_LCD_BSEL_NONE                        LCD_CR0_BSEL_NONE                

    #define LL_LCD_DUTY_NONE                        LCD_CR0_DUTY_NONE    
    #define LL_LCD_DUTY_2                            LCD_CR0_DUTY_2        
    #define LL_LCD_DUTY_3                            LCD_CR0_DUTY_3        
    #define LL_LCD_DUTY_4                            LCD_CR0_DUTY_4        
    #define LL_LCD_DUTY_6                            LCD_CR0_DUTY_6        
    #define LL_LCD_DUTY_8                            LCD_CR0_DUTY_8        

    #define LL_LCD_BIAS_2                            LCD_CR0_BIAS_2
    #define LL_LCD_BIAS_3                            LCD_CR0_BIAS_3
            
    #define LL_LCD_CPCLK_2K                            LCD_CR0_CPCLK_2K    
    #define LL_LCD_CPCLK_4K                            LCD_CR0_CPCLK_4K    
    #define LL_LCD_CPCLK_8K                            LCD_CR0_CPCLK_8K    
    #define LL_LCD_CPCLK_16K                        LCD_CR0_CPCLK_16K    
            
    #define LL_LCD_CLK_64HZ                            LCD_CR0_CLK_64HZ
    #define LL_LCD_CLK_128HZ                        LCD_CR0_CLK_128HZ
    #define LL_LCD_CLK_256HZ                        LCD_CR0_CLK_256HZ
    #define LL_LCD_CLK_512HZ                        LCD_CR0_CLK_512HZ
            
    #define LL_LCD_MODE_0                            LCD_CR1_MODE_0
    #define LL_LCD_MODE_1                            LCD_CR1_MODE_1

    #define LL_LCD_BLINK_ENABLE                        LCD_CR1_BLINK_ENABLE
    #define LL_LCD_BLINK_DISABLE                    LCD_CR1_BLINK_DISABLE
    
    #define LL_LCD_CLK_SOURCE_RCL                    LCD_CR1_CLK_SOURCE_RCL        
    #define LL_LCD_CLK_SOURCE_XTL                    LCD_CR1_CLK_SOURCE_XTL

    #define LL_LCD_BLINK_CNT_1                        LCD_CR1_BLINK_CNT_1        
    #define LL_LCD_BLINK_CNT_2                        LCD_CR1_BLINK_CNT_2        
    #define LL_LCD_BLINK_CNT_3                        LCD_CR1_BLINK_CNT_3        
    #define LL_LCD_BLINK_CNT_4                        LCD_CR1_BLINK_CNT_4        
           
    #define LL_LCD_BLINK_CNT_5                        LCD_CR1_BLINK_CNT_5        
    #define LL_LCD_BLINK_CNT_6                        LCD_CR1_BLINK_CNT_6        
    #define LL_LCD_BLINK_CNT_7                        LCD_CR1_BLINK_CNT_7        
    #define LL_LCD_BLINK_CNT_8                        LCD_CR1_BLINK_CNT_8        
          
    #define LL_LCD_BLINK_CNT_9                        LCD_CR1_BLINK_CNT_9        
    #define LL_LCD_BLINK_CNT_10                        LCD_CR1_BLINK_CNT_10    
    #define LL_LCD_BLINK_CNT_11                        LCD_CR1_BLINK_CNT_11    
    #define LL_LCD_BLINK_CNT_12                        LCD_CR1_BLINK_CNT_12    
            
    #define LL_LCD_BLINK_CNT_13                        LCD_CR1_BLINK_CNT_13    
    #define LL_LCD_BLINK_CNT_14                        LCD_CR1_BLINK_CNT_14    
    #define LL_LCD_BLINK_CNT_15                        LCD_CR1_BLINK_CNT_15    
    #define LL_LCD_BLINK_CNT_16                        LCD_CR1_BLINK_CNT_16    
          
    #define LL_LCD_BLINK_CNT_17                        LCD_CR1_BLINK_CNT_17    
    #define LL_LCD_BLINK_CNT_18                        LCD_CR1_BLINK_CNT_18    
    #define LL_LCD_BLINK_CNT_19                        LCD_CR1_BLINK_CNT_19    
    #define LL_LCD_BLINK_CNT_20                        LCD_CR1_BLINK_CNT_20    
          
    #define LL_LCD_BLINK_CNT_21                        LCD_CR1_BLINK_CNT_21    
    #define LL_LCD_BLINK_CNT_22                        LCD_CR1_BLINK_CNT_22    
    #define LL_LCD_BLINK_CNT_23                        LCD_CR1_BLINK_CNT_23    
    #define LL_LCD_BLINK_CNT_24                        LCD_CR1_BLINK_CNT_24    
            
    #define LL_LCD_BLINK_CNT_25                        LCD_CR1_BLINK_CNT_25    
    #define LL_LCD_BLINK_CNT_26                        LCD_CR1_BLINK_CNT_26    
    #define LL_LCD_BLINK_CNT_27                        LCD_CR1_BLINK_CNT_27    
    #define LL_LCD_BLINK_CNT_28                        LCD_CR1_BLINK_CNT_28    
           
    #define LL_LCD_BLINK_CNT_29                        LCD_CR1_BLINK_CNT_29    
    #define LL_LCD_BLINK_CNT_30                        LCD_CR1_BLINK_CNT_30    
    #define LL_LCD_BLINK_CNT_31                        LCD_CR1_BLINK_CNT_31    
    #define LL_LCD_BLINK_CNT_32                        LCD_CR1_BLINK_CNT_32    
            
    #define LL_LCD_BLINK_CNT_33                        LCD_CR1_BLINK_CNT_33    
    #define LL_LCD_BLINK_CNT_34                        LCD_CR1_BLINK_CNT_34    
    #define LL_LCD_BLINK_CNT_35                        LCD_CR1_BLINK_CNT_35    
    #define LL_LCD_BLINK_CNT_36                        LCD_CR1_BLINK_CNT_36    
           
    #define LL_LCD_BLINK_CNT_37                        LCD_CR1_BLINK_CNT_37    
    #define LL_LCD_BLINK_CNT_38                        LCD_CR1_BLINK_CNT_38    
    #define LL_LCD_BLINK_CNT_39                        LCD_CR1_BLINK_CNT_39    
    #define LL_LCD_BLINK_CNT_40                        LCD_CR1_BLINK_CNT_40    
            
    #define LL_LCD_BLINK_CNT_41                        LCD_CR1_BLINK_CNT_41    
    #define LL_LCD_BLINK_CNT_42                        LCD_CR1_BLINK_CNT_42    
    #define LL_LCD_BLINK_CNT_43                        LCD_CR1_BLINK_CNT_43    
    #define LL_LCD_BLINK_CNT_44                        LCD_CR1_BLINK_CNT_44    
          
    #define LL_LCD_BLINK_CNT_45                        LCD_CR1_BLINK_CNT_45    
    #define LL_LCD_BLINK_CNT_46                        LCD_CR1_BLINK_CNT_46    
    #define LL_LCD_BLINK_CNT_47                        LCD_CR1_BLINK_CNT_47    
    #define LL_LCD_BLINK_CNT_48                        LCD_CR1_BLINK_CNT_48    
           
    #define LL_LCD_BLINK_CNT_49                        LCD_CR1_BLINK_CNT_49    
    #define LL_LCD_BLINK_CNT_50                        LCD_CR1_BLINK_CNT_50    
    #define LL_LCD_BLINK_CNT_51                        LCD_CR1_BLINK_CNT_51    
    #define LL_LCD_BLINK_CNT_52                        LCD_CR1_BLINK_CNT_52    
           
    #define LL_LCD_BLINK_CNT_53                        LCD_CR1_BLINK_CNT_53    
    #define LL_LCD_BLINK_CNT_54                        LCD_CR1_BLINK_CNT_54    
    #define LL_LCD_BLINK_CNT_55                        LCD_CR1_BLINK_CNT_55    
    #define LL_LCD_BLINK_CNT_56                        LCD_CR1_BLINK_CNT_56    
            
    #define LL_LCD_BLINK_CNT_57                        LCD_CR1_BLINK_CNT_57    
    #define LL_LCD_BLINK_CNT_58                        LCD_CR1_BLINK_CNT_58    
    #define LL_LCD_BLINK_CNT_59                        LCD_CR1_BLINK_CNT_59    
    #define LL_LCD_BLINK_CNT_60                        LCD_CR1_BLINK_CNT_60    
            
    #define LL_LCD_BLINK_CNT_61                        LCD_CR1_BLINK_CNT_61        
    #define LL_LCD_BLINK_CNT_62                        LCD_CR1_BLINK_CNT_62        
    #define LL_LCD_BLINK_CNT_63                        LCD_CR1_BLINK_CNT_63        
    #define LL_LCD_BLINK_CNT_64                        LCD_CR1_BLINK_CNT_64        

    #define LL_LCD_SEG_0                            LCD_POEN0_SEG_0                
    #define LL_LCD_SEG_1                            LCD_POEN0_SEG_1                
    #define LL_LCD_SEG_2                            LCD_POEN0_SEG_2                
    #define LL_LCD_SEG_3                            LCD_POEN0_SEG_3                
    
    #define LL_LCD_SEG_4                            LCD_POEN0_SEG_4                                                     
    #define LL_LCD_SEG_5                            LCD_POEN0_SEG_5                
    #define LL_LCD_SEG_6                            LCD_POEN0_SEG_6                
    #define LL_LCD_SEG_7                            LCD_POEN0_SEG_7                
    
    #define LL_LCD_SEG_8                            LCD_POEN0_SEG_8                                                     
    #define LL_LCD_SEG_9                            LCD_POEN0_SEG_9                
    #define LL_LCD_SEG_10                            LCD_POEN0_SEG_10            
    #define LL_LCD_SEG_11                            LCD_POEN0_SEG_11            
    
    #define LL_LCD_SEG_12                            LCD_POEN0_SEG_12                                                     
    #define LL_LCD_SEG_13                            LCD_POEN0_SEG_13            
    #define LL_LCD_SEG_14                            LCD_POEN0_SEG_14            
    #define LL_LCD_SEG_15                            LCD_POEN0_SEG_15            
    
    #define LL_LCD_SEG_16                            LCD_POEN0_SEG_16                                                     
    #define LL_LCD_SEG_17                            LCD_POEN0_SEG_17            
    #define LL_LCD_SEG_18                            LCD_POEN0_SEG_18            
    #define LL_LCD_SEG_19                            LCD_POEN0_SEG_19            
    
    #define LL_LCD_SEG_20                            LCD_POEN0_SEG_20                                                     
    #define LL_LCD_SEG_21                            LCD_POEN0_SEG_21            
    #define LL_LCD_SEG_22                            LCD_POEN0_SEG_22            
    #define LL_LCD_SEG_23                            LCD_POEN0_SEG_23            
    
    #define LL_LCD_SEG_24                            LCD_POEN0_SEG_24                                                     
    #define LL_LCD_SEG_25                            LCD_POEN0_SEG_25            
    #define LL_LCD_SEG_26                            LCD_POEN0_SEG_26            
    #define LL_LCD_SEG_27                            LCD_POEN0_SEG_27            
    
    #define LL_LCD_SEG_28                            LCD_POEN0_SEG_28                                                     
    #define LL_LCD_SEG_29                            LCD_POEN0_SEG_29            
    #define LL_LCD_SEG_30                            LCD_POEN0_SEG_30            
    #define LL_LCD_SEG_31                            LCD_POEN0_SEG_31            
    
    #define LL_LCD_SEG_32                            LCD_POEN1_SEG_32            
    #define LL_LCD_SEG_33                            LCD_POEN1_SEG_33            
    #define LL_LCD_SEG_34                            LCD_POEN1_SEG_34            
    #define LL_LCD_SEG_35                            LCD_POEN1_SEG_35            
    
    #define LL_LCD_SEG_36                            LCD_POEN1_SEG_36                                                 
    #define LL_LCD_SEG_37                            LCD_POEN1_SEG_37            
    #define LL_LCD_SEG_38                            LCD_POEN1_SEG_38            
    #define LL_LCD_SEG_39                            LCD_POEN1_SEG_39            
    
    #define LL_LCD_SEG_40                            LCD_POEN1_SEG_40                                                 
    #define LL_LCD_SEG_41                            LCD_POEN1_SEG_41            
    #define LL_LCD_SEG_42                            LCD_POEN1_SEG_42            
    #define LL_LCD_SEG_43                            LCD_POEN1_SEG_43            
    
    #define LL_LCD_SEG_44                            LCD_POEN1_SEG_44                                                     
    #define LL_LCD_SEG_45                            LCD_POEN1_SEG_45            
    #define LL_LCD_SEG_46                            LCD_POEN1_SEG_46            
    #define LL_LCD_SEG_47                            LCD_POEN1_SEG_47            
    
    #define LL_LCD_SEG_48                            LCD_POEN1_SEG_48                                                     
    #define LL_LCD_SEG_49                            LCD_POEN1_SEG_49            
    #define LL_LCD_SEG_50                            LCD_POEN1_SEG_50            
    #define LL_LCD_SEG_51                            LCD_POEN1_SEG_51            
    
    #define LL_LCD_SEG_52                            LCD_POEN1_SEG_52        

    #define LL_LCD_SEG_PIN_0                        0                
    #define LL_LCD_SEG_PIN_1                        1                
    #define LL_LCD_SEG_PIN_2                        2                
    #define LL_LCD_SEG_PIN_3                        3                
                      
    #define LL_LCD_SEG_PIN_4                        4                                                     
    #define LL_LCD_SEG_PIN_5                        5                
    #define LL_LCD_SEG_PIN_6                        6                
    #define LL_LCD_SEG_PIN_7                        7                
                      
    #define LL_LCD_SEG_PIN_8                        8                                                     
    #define LL_LCD_SEG_PIN_9                        9                
    #define LL_LCD_SEG_PIN_10                        10            
    #define LL_LCD_SEG_PIN_11                        11            
                      
    #define LL_LCD_SEG_PIN_12                        12                                                     
    #define LL_LCD_SEG_PIN_13                        13            
    #define LL_LCD_SEG_PIN_14                        14            
    #define LL_LCD_SEG_PIN_15                        15            
                      
    #define LL_LCD_SEG_PIN_16                        16                                                     
    #define LL_LCD_SEG_PIN_17                        17            
    #define LL_LCD_SEG_PIN_18                        18            
    #define LL_LCD_SEG_PIN_19                        19            
                      
    #define LL_LCD_SEG_PIN_20                        20                                                     
    #define LL_LCD_SEG_PIN_21                        21            
    #define LL_LCD_SEG_PIN_22                        22            
    #define LL_LCD_SEG_PIN_23                        23            
                      
    #define LL_LCD_SEG_PIN_24                        24                                                     
    #define LL_LCD_SEG_PIN_25                        25            
    #define LL_LCD_SEG_PIN_26                        26            
    #define LL_LCD_SEG_PIN_27                        27            
                      
    #define LL_LCD_SEG_PIN_28                        28                                                     
    #define LL_LCD_SEG_PIN_29                        29            
    #define LL_LCD_SEG_PIN_30                        30            
    #define LL_LCD_SEG_PIN_31                        31            
                      
    #define LL_LCD_SEG_PIN_32                        32            
    #define LL_LCD_SEG_PIN_33                        33            
    #define LL_LCD_SEG_PIN_34                        34            
    #define LL_LCD_SEG_PIN_35                        35            
                      
    #define LL_LCD_SEG_PIN_36                        36                                                 
    #define LL_LCD_SEG_PIN_37                        37            
    #define LL_LCD_SEG_PIN_38                        38            
    #define LL_LCD_SEG_PIN_39                        39            
                      
    #define LL_LCD_SEG_PIN_40                        40                                                 
    #define LL_LCD_SEG_PIN_41                        41            
    #define LL_LCD_SEG_PIN_42                        42            
    #define LL_LCD_SEG_PIN_43                        43            
                      
    #define LL_LCD_SEG_PIN_44                        44                                                     
    #define LL_LCD_SEG_PIN_45                        45            
    #define LL_LCD_SEG_PIN_46                        46            
    #define LL_LCD_SEG_PIN_47                        47            
                      
    #define LL_LCD_SEG_PIN_48                        48                                                     
    #define LL_LCD_SEG_PIN_49                        49            
    #define LL_LCD_SEG_PIN_50                        50            
    #define LL_LCD_SEG_PIN_51                        51            
                      
    //#define LL_LCD_SEG_PIN_52                        52

    #define LL_LCD_COM_0                            LCD_POEN1_COM_0                
    #define LL_LCD_COM_1                            LCD_POEN1_COM_1                
    #define LL_LCD_COM_2                            LCD_POEN1_COM_2                
    #define LL_LCD_COM_3                            LCD_POEN1_COM_3                
    #define LL_LCD_COM_4                            LCD_POEN1_COM_4                
    #define LL_LCD_COM_5                            LCD_POEN1_COM_5                
    #define LL_LCD_COM_6                            LCD_POEN1_COM_6                
    #define LL_LCD_COM_7                            LCD_POEN1_COM_7        

    #define LL_LCD_COM_BIT_0                        0x01    
    #define LL_LCD_COM_BIT_1                        0x02
    #define LL_LCD_COM_BIT_2                        0x04
    #define LL_LCD_COM_BIT_3                        0x08
    #define LL_LCD_COM_BIT_4                        0x10
    #define LL_LCD_COM_BIT_5                        0x20
    #define LL_LCD_COM_BIT_6                        0x40
    #define LL_LCD_COM_BIT_7                        0x80

    #define LL_LCD_BIT_0                            0
    #define LL_LCD_BIT_1                            1
    #define LL_LCD_BIT_2                            2
    #define LL_LCD_BIT_3                            3
    #define LL_LCD_BIT_4                            4
    #define LL_LCD_BIT_5                            5
    #define LL_LCD_BIT_6                            6
    #define LL_LCD_BIT_7                            7
    
    #define LL_LCD_MUX_ENABLE                        LCD_POEN1_MUX_ENABLE
    #define LL_LCD_MUX_DISABLE                        LCD_POEN1_MUX_DISABLE
    
    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Enable(LCD_TypeDef* LCDx)
    {
        SET_BIT(LCDx->CR0, LCD_CR0_EN);
    }
    
    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Disable(LCD_TypeDef* LCDx)
    {
        CLEAR_BIT(LCDx->CR0, LCD_CR0_EN);
    }
    
    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_IsEnabled(LCD_TypeDef* LCDx)
    {
        return ((READ_BIT(LCDx->CR0, LCD_CR0_EN) == (LCD_CR0_EN)) ? 1UL : 0UL);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetScanFrequency(LCD_TypeDef* LCDx,uint32_t lcdclk)
    {
        MODIFY_REG(LCDx->CR0, LCD_CR0_CLK,lcdclk);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetScanFrequency(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR0, LCD_CR0_CLK);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetClkFrequency(LCD_TypeDef* LCDx, uint32_t cpclk)
    {
        MODIFY_REG(LCDx->CR0, LCD_CR0_CPCLK, cpclk);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetClkFrequency(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR0, LCD_CR0_CPCLK);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetBias(LCD_TypeDef* LCDx, uint32_t bias)
    {
        MODIFY_REG(LCDx->CR0, LCD_CR0_BIAS, bias);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetBias(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR0, LCD_CR0_BIAS);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetDuty(LCD_TypeDef* LCDx, uint32_t duty)
    {
        MODIFY_REG(LCDx->CR0, LCD_CR0_DUTY, duty);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetDuty(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR0, LCD_CR0_DUTY);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetBsel(LCD_TypeDef* LCDx, uint32_t bsel)
    {
        MODIFY_REG(LCDx->CR0, LCD_CR0_BSEL, bsel);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetBsel(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR0, LCD_CR0_BSEL);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetContrasl(LCD_TypeDef* LCDx, uint32_t contrasl)
    {
        MODIFY_REG(LCDx->CR0, LCD_CR0_CONTRAST, contrasl);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetContrasl(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR0, LCD_CR0_CONTRAST);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_EnableBlink(LCD_TypeDef* LCDx)
    {
        SET_BIT(LCDx->CR1, LCD_CR1_BLINK_EN);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_DisableBlink(LCD_TypeDef* LCDx)
    {
        CLEAR_BIT(LCDx->CR1, LCD_CR1_BLINK_EN);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_IsEnabled_Blink(LCD_TypeDef* LCDx)
    {
        return ((READ_BIT(LCDx->CR1, LCD_CR1_BLINK_EN) == (LCD_CR1_BLINK_EN)) ? 1UL : 0UL);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetBlinkCnt(LCD_TypeDef* LCDx, uint32_t cnt)
    {
        MODIFY_REG(LCDx->CR1, LCD_CR1_BLINK_CNT, cnt);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetBlinkCnt(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR1, LCD_CR1_BLINK_CNT);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetClkSource(LCD_TypeDef* LCDx, uint32_t clksrc)
    {
        MODIFY_REG(LCDx->CR1, LCD_CR1_CLK_SOURCE, clksrc);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetClkSource(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR1, LCD_CR1_CLK_SOURCE);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_SetMode(LCD_TypeDef* LCDx, uint32_t mode)
    {
        MODIFY_REG(LCDx->CR1, LCD_CR1_MODE, mode);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_GetMode(LCD_TypeDef* LCDx)
    {
        return (uint32_t)READ_BIT(LCDx->CR1, LCD_CR1_MODE);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_EnableIT(LCD_TypeDef* LCDx)
    {
        SET_BIT(LCDx->CR1, LCD_CR1_IE);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_DisableIT(LCD_TypeDef* LCDx)
    {
        CLEAR_BIT(LCDx->CR1, LCD_CR1_IE);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_IsEnabled_IT(LCD_TypeDef* LCDx)
    {
        return ((READ_BIT(LCDx->CR1, LCD_CR1_IE) == (LCD_CR1_IE)) ? 1UL : 0UL);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_EnableDMA(LCD_TypeDef* LCDx)
    {
        SET_BIT(LCDx->CR1, LCD_CR1_DMAEN);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_DisableDMA(LCD_TypeDef* LCDx)
    {
        CLEAR_BIT(LCDx->CR1, LCD_CR1_DMAEN);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_IsEnabled_DMA(LCD_TypeDef* LCDx)
    {
        return ((READ_BIT(LCDx->CR1, LCD_CR1_DMAEN) == (LCD_CR1_DMAEN)) ? 1UL : 0UL);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline uint32_t LL_LCD_IsActiveFlag(LCD_TypeDef* LCDx)
    {
        return ((READ_BIT(LCDx->CR1, LCD_CR1_INTF) == (LCD_CR1_INTF)) ? 1UL : 0UL);
    }

    ///
    //函        数: 
    //功        能: 清除标志位
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_ClearFlag(LCD_TypeDef* LCDx)
    {
        SET_BIT(LCDx->CSR, LCD_CSR_INTF);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_EnableSEG(LCD_TypeDef* LCDx, uint8_t reg, uint32_t seg)
    {
        if (reg==0)
        {
            CLEAR_BIT(LCDx->POEN0, seg);
        }
        else
        {
            CLEAR_BIT(LCDx->POEN1, seg);
        }
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_DisableSEG(LCD_TypeDef* LCDx, uint8_t reg, uint32_t seg)
    {
        if (reg == 0)
        {
            SET_BIT(LCDx->POEN0, reg);
        }
        else
        {
            SET_BIT(LCDx->POEN1, reg);
        }
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_EnableMUX(LCD_TypeDef* LCDx)
    {
        SET_BIT(LCDx->POEN1, LCD_POEN1_MUX);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_DisableMUX(LCD_TypeDef* LCDx)
    {
        CLEAR_BIT(LCDx->POEN1, LCD_POEN1_MUX);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_EnableCOM(LCD_TypeDef* LCDx, uint32_t com)
    {
        CLEAR_BIT(LCDx->POEN1, com);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_DisableCOM(LCD_TypeDef* LCDx,uint32_t com)
    {
        SET_BIT(LCDx->POEN1, com);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_FullSeg(LCD_TypeDef* LCDx)
    {
        LCDx->RAM0 = 0xFFFFFFFF;
        LCDx->RAM1 = 0xFFFFFFFF;
        LCDx->RAM2 = 0xFFFFFFFF;
        LCDx->RAM3 = 0xFFFFFFFF;
        LCDx->RAM4 = 0xFFFFFFFF;
        LCDx->RAM5 = 0xFFFFFFFF;
        LCDx->RAM6 = 0xFFFFFFFF;
        LCDx->RAM7 = 0xFFFFFFFF;
        LCDx->RAM8 = 0xFFFFFFFF;
        LCDx->RAM9 = 0xFFFFFFFF;
        LCDx->RAMA = 0xFFFFFFFF;
        LCDx->RAMB = 0xFFFFFFFF;
        LCDx->RAMC = 0xFFFFFFFF;
        LCDx->RAMD = 0xFFFFFFFF;
        LCDx->RAME = 0xFFFFFFFF;
        LCDx->RAMF = 0xFFFFFFFF;
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_ClearSeg(LCD_TypeDef* LCDx)
    {
        LCDx->RAM0 = 0x00000000;
        LCDx->RAM1 = 0x00000000;
        LCDx->RAM2 = 0x00000000;
        LCDx->RAM3 = 0x00000000;
        LCDx->RAM4 = 0x00000000;
        LCDx->RAM5 = 0x00000000;
        LCDx->RAM6 = 0x00000000;
        LCDx->RAM7 = 0x00000000;
        LCDx->RAM8 = 0x00000000;
        LCDx->RAM9 = 0x00000000;
        LCDx->RAMA = 0x00000000;
        LCDx->RAMB = 0x00000000;
        LCDx->RAMC = 0x00000000;
        LCDx->RAMD = 0x00000000;
        LCDx->RAME = 0x00000000;
        LCDx->RAMF = 0x00000000;
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_WriteRam(LCD_TypeDef* LCDx, uint32_t index, uint32_t dat)
    {
        uint32_t* ram = NULL;
        ram = (uint32_t*)&(LCDx->RAM0);
        if (index<16)
        {
            ram[index] = dat;
        }
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Mode1_WriteSeg(LCD_TypeDef* LCDx,uint32_t segpin,uint32_t dat)
    {
        //uint32_t tempram[8] = {0};
        uint32_t* ram = NULL;
        uint8_t bitNum = 0;
        //---数据修改
        if (segpin < 32)
        {
            ram = (uint32_t*)&(LCDx->RAM0);
        }
        else
        {
            segpin -= 32;
            ram = (uint32_t*)&(LCDx->RAM8);
        }
        //---获取RAM中原始值
        //memcpy(tempram, ram, 8);
        //---偏移到位信息
        segpin = (1 << segpin);
        //---修改其中的值,进行数据组装
        for (bitNum = 0; bitNum < 8; bitNum++)
        {
            if ((dat & 0x01) == 0)
            {
                CLEAR_BIT(ram[bitNum], segpin);
            }
            else
            {
                SET_BIT(ram[bitNum], segpin);
            }
            //---数据偏移
            dat >>= 1;
        }
        //---将修改的数据写入寄存器中
        //memcpy(ram, tempram, 8);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Mode1_WriteBitSeg(LCD_TypeDef* LCDx, uint32_t segpin, uint32_t dat,uint8_t bit)
    {
        //uint32_t tempram[8] = { 0 };
        uint32_t* ram = NULL;
        uint8_t bitNum = 0;
        //---数据修改
        if (segpin <32)
        {
            ram = (uint32_t*)&(LCDx->RAM0);
        }
        else
        {
            segpin -= 32;
            ram = (uint32_t*)&(LCDx->RAM8);
        }
        //---获取RAM中原始值
        //memcpy(tempram, ram, 8);
        //---偏移到位信息
        segpin = (1 << segpin);
        //---修改其中的值,进行数据组装
        for (bitNum = 0; bitNum < 8; bitNum++)
        {
            if (bit == bitNum)
            {
                if ((dat & 0x01) == 0)
                {
                    CLEAR_BIT(ram[bitNum], segpin);
                }
                else
                {
                    SET_BIT(ram[bitNum], segpin);
                }
            }
            //---数据偏移
            dat >>= 1;
        }
        //---将修改的数据写入寄存器中
        //memcpy(ram, tempram, 8);
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Mode1_WriteBitMaskSeg(LCD_TypeDef* LCDx, uint32_t segpin, uint32_t dat, uint8_t bitmask)
    {
        //uint32_t tempram[8] = { 0 };
        uint32_t* ram = NULL;
        uint8_t bitNum = 0;
        uint8_t tempmask = 0;
        //---数据修改
        if (segpin < 32)
        {
            ram = (uint32_t*)&(LCDx->RAM0);
        }
        else
        {
            segpin -= 32;
            ram = (uint32_t*)&(LCDx->RAM8);
        }
        //---获取RAM中原始值
        //memcpy(tempram, ram, 8);
        //---偏移到位信息
        segpin = (1 << segpin);
        //---修改其中的值,进行数据组装
        for (bitNum = 0; bitNum < 8; bitNum++)
        {
            //---BIT偏移缓存
            tempmask = (1 << bitNum);
            //---判断校验
            if ((bitmask& tempmask)!=0)
            {
                if ((dat & 0x01) == 0)
                {
                    CLEAR_BIT(ram[bitNum], segpin);
                }
                else
                {
                    SET_BIT(ram[bitNum], segpin);
                }
            }
            //---数据偏移
            dat >>= 1;
        }
        //---将修改的数据写入寄存器中
        //memcpy(ram, tempram, 8);
    }
    
    //===端口通用功能配置寄存器
    typedef struct
    {
        __IO uint8_t SEG0;            //---控制寄存器1
        __IO uint8_t SEG1;            //---控制寄存器1
        __IO uint8_t SEG2;            //---控制寄存器1
        __IO uint8_t SEG3;            //---控制寄存器1
    
        __IO uint8_t SEG4;            //---控制寄存器1
        __IO uint8_t SEG5;            //---控制寄存器1
        __IO uint8_t SEG6;            //---控制寄存器1
        __IO uint8_t SEG7;            //---控制寄存器1
    
        __IO uint8_t SEG8;            //---控制寄存器1
        __IO uint8_t SEG9;            //---控制寄存器1

        __IO uint8_t SEG10;            //---控制寄存器1
        __IO uint8_t SEG11;            //---控制寄存器1
        __IO uint8_t SEG12;            //---控制寄存器1
        __IO uint8_t SEG13;            //---控制寄存器1

        __IO uint8_t SEG14;            //---控制寄存器1
        __IO uint8_t SEG15;            //---控制寄存器1
        __IO uint8_t SEG16;            //---控制寄存器1
        __IO uint8_t SEG17;            //---控制寄存器1

        __IO uint8_t SEG18;            //---控制寄存器1
        __IO uint8_t SEG19;            //---控制寄存器1

        __IO uint8_t SEG20;            //---控制寄存器1
        __IO uint8_t SEG21;            //---控制寄存器1
        __IO uint8_t SEG22;            //---控制寄存器1
        __IO uint8_t SEG23;            //---控制寄存器1

        __IO uint8_t SEG24;            //---控制寄存器1
        __IO uint8_t SEG25;            //---控制寄存器1
        __IO uint8_t SEG26;            //---控制寄存器1
        __IO uint8_t SEG27;            //---控制寄存器1

        __IO uint8_t SEG28;            //---控制寄存器1
        __IO uint8_t SEG29;            //---控制寄存器1

        __IO uint8_t SEG30;            //---控制寄存器1
        __IO uint8_t SEG31;            //---控制寄存器1

        __IO uint8_t SEG32;            //---控制寄存器1
        __IO uint8_t SEG40;            //---控制寄存器1
        __IO uint8_t SEG48;            //---控制寄存器1
        __IO uint8_t RESERVE0;        //---控制寄存器1

        __IO uint8_t SEG33;            //---控制寄存器1
        __IO uint8_t SEG41;            //---控制寄存器1
        __IO uint8_t SEG49;            //---控制寄存器1
        __IO uint8_t RESERVE1;        //---控制寄存器1

        __IO uint8_t SEG34;            //---控制寄存器1
        __IO uint8_t SEG42;            //---控制寄存器1
        __IO uint8_t SEG50;            //---控制寄存器1
        __IO uint8_t RESERVE2;        //---控制寄存器1

        __IO uint8_t SEG35;            //---控制寄存器1
        __IO uint8_t SEG43;            //---控制寄存器1
        __IO uint8_t SEG51;            //---控制寄存器1
        __IO uint8_t RESERVE3;        //---控制寄存器1

        __IO uint8_t SEG36;            //---控制寄存器1
        __IO uint8_t SEG44;            //---控制寄存器1
        __IO uint8_t RESERVE4;        //---控制寄存器1
        __IO uint8_t RESERVE5;        //---控制寄存器1

        __IO uint8_t SEG37;            //---控制寄存器1
        __IO uint8_t SEG45;            //---控制寄存器1
        __IO uint8_t RESERVE6;        //---控制寄存器1
        __IO uint8_t RESERVE7;        //---控制寄存器1

        __IO uint8_t SEG38;            //---控制寄存器1
        __IO uint8_t SEG46;            //---控制寄存器1
        __IO uint8_t RESERVE8;        //---控制寄存器1
        __IO uint8_t RESERVE9;        //---控制寄存器1

        __IO uint8_t SEG39;            //---控制寄存器1
        __IO uint8_t SEG47;            //---控制寄存器1
        __IO uint8_t RESERVE10;        //---控制寄存器1
        __IO uint8_t RESERVE11;        //---控制寄存器1
    
    } LL_LCD_MODE0_TypeDef;
    
    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Mode0_WriteSeg(LCD_TypeDef* LCDx, uint32_t segpin, uint8_t dat)
    {
        //---SEG端口的信息
        LL_LCD_MODE0_TypeDef* pSEG = NULL;
        pSEG = (LL_LCD_MODE0_TypeDef*)(&(LCDx->RAM0));
        //---变量填写
        switch (segpin)
        {
            case  LL_LCD_SEG_PIN_0:
            {
                pSEG->SEG0 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_1:
            {
                pSEG->SEG1 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_2:
            {
                pSEG->SEG2 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_3:
            {
                pSEG->SEG3 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_4:
            {
                pSEG->SEG4 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_5:
            {
                pSEG->SEG5 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_6:
            {
                pSEG->SEG6 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_7:
            {
                pSEG->SEG7 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_8:
            {
                pSEG->SEG8 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_9:
            {
                pSEG->SEG9 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_10:
            {
                pSEG->SEG10 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_11:
            {
                pSEG->SEG11 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_12:
            {
                pSEG->SEG12 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_13:
            {
                pSEG->SEG13 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_14:
            {
                pSEG->SEG14 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_15:
            {
                pSEG->SEG15 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_16:
            {
                pSEG->SEG16 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_17:
            {
                pSEG->SEG17 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_18:
            {
                pSEG->SEG18 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_19:
            {
                pSEG->SEG19 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_20:
            {
                pSEG->SEG20 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_21:
            {
                pSEG->SEG21 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_22:
            {
                pSEG->SEG22 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_23:
            {
                pSEG->SEG23 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_24:
            {
                pSEG->SEG24 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_25:
            {
                pSEG->SEG25 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_26:
            {
                pSEG->SEG26 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_27:
            {
                pSEG->SEG27 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_28:
            {
                pSEG->SEG28 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_29:
            {
                pSEG->SEG29 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_30:
            {
                pSEG->SEG30 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_31:
            {
                pSEG->SEG31 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_32:
            {
                pSEG->SEG32 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_33:
            {
                pSEG->SEG33 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_34:
            {
                pSEG->SEG34 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_35:
            {
                pSEG->SEG35 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_36:
            {
                pSEG->SEG36 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_37:
            {
                pSEG->SEG37 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_38:
            {
                pSEG->SEG38 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_39:
            {
                pSEG->SEG39 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_40:
            {
                pSEG->SEG40 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_41:
            {
                pSEG->SEG41 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_42:
            {
                pSEG->SEG42 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_43:
            {
                pSEG->SEG43 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_44:
            {
                pSEG->SEG44 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_45:
            {
                pSEG->SEG45 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_46:
            {
                pSEG->SEG46 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_47:
            {
                pSEG->SEG47 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_48:
            {
                pSEG->SEG48 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_49:
            {
                pSEG->SEG49 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_50:
            {
                pSEG->SEG50 = dat;
                break;
            }
            case  LL_LCD_SEG_PIN_51:
            {
                pSEG->SEG51 = dat;
                break;
            }
            default:
            {
                LL_LCD_ClearSeg(LCDx);
                //---使能
                LL_LCD_Disable(LCDx);
                break;
            }
        }
    }

    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Mode0_WriteBitSeg(LCD_TypeDef* LCDx, uint32_t segpin, uint8_t dat, uint8_t bit)
    {
        //---SEG端口的信息
        LL_LCD_MODE0_TypeDef* pSEG = NULL;
        pSEG = (LL_LCD_MODE0_TypeDef*)(&(LCDx->RAM0));
        //---其他位清零
        bit = (1 << bit);
        dat &= bit;
        //---变量填写
        switch (segpin)
        {
            case  LL_LCD_SEG_PIN_0:
            {
                pSEG->SEG0 &= ~bit;
                pSEG->SEG0 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_1:
            {
                pSEG->SEG1 &= ~bit;
                pSEG->SEG1 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_2:
            {
                pSEG->SEG2 &= ~bit;
                pSEG->SEG2 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_3:
            {
                pSEG->SEG3 &= ~bit;
                pSEG->SEG3 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_4:
            {
                pSEG->SEG4 &= ~bit;
                pSEG->SEG4 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_5:
            {
                pSEG->SEG5 &= ~bit;
                pSEG->SEG5 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_6:
            {
                pSEG->SEG6 &= ~bit;
                pSEG->SEG6 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_7:
            {
                pSEG->SEG7 &= ~bit;
                pSEG->SEG7 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_8:
            {
                pSEG->SEG8 &= ~bit;
                pSEG->SEG8 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_9:
            {
                pSEG->SEG9 &= ~bit;
                pSEG->SEG9 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_10:
            {
                pSEG->SEG10 &= ~bit;
                pSEG->SEG10 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_11:
            {
                pSEG->SEG11 &= ~bit;
                pSEG->SEG11 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_12:
            {
                pSEG->SEG12 &= ~bit;
                pSEG->SEG12 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_13:
            {
                pSEG->SEG13 &= ~bit;
                pSEG->SEG13 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_14:
            {
                pSEG->SEG14 &= ~bit;
                pSEG->SEG14 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_15:
            {
                pSEG->SEG15 &= ~bit;
                pSEG->SEG15 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_16:
            {
                pSEG->SEG16 &= ~bit;
                pSEG->SEG16 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_17:
            {
                pSEG->SEG17 &= ~bit;
                pSEG->SEG17 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_18:
            {
                pSEG->SEG18 &= ~bit;
                pSEG->SEG18 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_19:
            {
                pSEG->SEG19 &= ~bit;
                pSEG->SEG19 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_20:
            {
                pSEG->SEG20 &= ~bit;
                pSEG->SEG20 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_21:
            {
                pSEG->SEG21 &= ~bit;
                pSEG->SEG21 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_22:
            {
                pSEG->SEG22 &= ~bit;
                pSEG->SEG22 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_23:
            {
                pSEG->SEG23 &= ~bit;
                pSEG->SEG23 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_24:
            {
                pSEG->SEG24 &= ~bit;
                pSEG->SEG24 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_25:
            {
                pSEG->SEG25 &= ~bit;
                pSEG->SEG25 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_26:
            {
                pSEG->SEG26 &= ~bit;
                pSEG->SEG26 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_27:
            {
                pSEG->SEG27 &= ~bit;
                pSEG->SEG27 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_28:
            {
                pSEG->SEG28 &= ~bit;
                pSEG->SEG28 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_29:
            {
                pSEG->SEG29 &= ~bit;
                pSEG->SEG29 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_30:
            {
                pSEG->SEG30 &= ~bit;
                pSEG->SEG30 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_31:
            {
                pSEG->SEG31 &= ~bit;
                pSEG->SEG31 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_32:
            {
                pSEG->SEG32 &= ~bit;
                pSEG->SEG32 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_33:
            {
                pSEG->SEG33 &= ~bit;
                pSEG->SEG33 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_34:
            {
                pSEG->SEG34 &= ~bit;
                pSEG->SEG34 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_35:
            {
                pSEG->SEG35 &= ~bit;
                pSEG->SEG35 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_36:
            {
                pSEG->SEG36 &= ~bit;
                pSEG->SEG36 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_37:
            {
                pSEG->SEG37 &= ~bit;
                pSEG->SEG37 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_38:
            {
                pSEG->SEG38 &= ~bit;
                pSEG->SEG38 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_39:
            {
                pSEG->SEG39 &= ~bit;
                pSEG->SEG39 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_40:
            {
                pSEG->SEG40 &= ~bit;
                pSEG->SEG40 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_41:
            {
                pSEG->SEG41 &= ~bit;
                pSEG->SEG41 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_42:
            {
                pSEG->SEG42 &= ~bit;
                pSEG->SEG42 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_43:
            {
                pSEG->SEG43 &= ~bit;
                pSEG->SEG43 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_44:
            {
                pSEG->SEG44 &= ~bit;
                pSEG->SEG44 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_45:
            {
                pSEG->SEG45 &= ~bit;
                pSEG->SEG45 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_46:
            {
                pSEG->SEG46 &= ~bit;
                pSEG->SEG46 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_47:
            {
                pSEG->SEG47 &= ~bit;
                pSEG->SEG47 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_48:
            {
                pSEG->SEG48 &= ~bit;
                pSEG->SEG48 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_49:
            {
                pSEG->SEG49 &= ~bit;
                pSEG->SEG49 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_50:
            {             
                pSEG->SEG50 &= ~bit;
                pSEG->SEG50 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_51:
            {
                pSEG->SEG51 &= ~bit;
                pSEG->SEG51 |= dat;
                break;
            }
            default:
            {
                LL_LCD_ClearSeg(LCDx);
                //---使能
                LL_LCD_Disable(LCDx);
                break;
            }
        }
    }
    
    ///
    //函        数: 
    //功        能: 
    //输入参    数: 
    //输出参    数: 
    //说        明: 
    //
    static inline void LL_LCD_Mode0_WriteBitMaskSeg(LCD_TypeDef* LCDx, uint32_t segpin, uint8_t dat, uint8_t bitmask)
    {
        //---SEG端口的信息
        LL_LCD_MODE0_TypeDef* pSEG = NULL;
        pSEG = (LL_LCD_MODE0_TypeDef*)(&(LCDx->RAM0));
        //---其他位清零
        dat &= bitmask;
        //---变量填写
        switch (segpin)
        {
            case  LL_LCD_SEG_PIN_0:
            {
                pSEG->SEG0 &= ~bitmask;
                pSEG->SEG0 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_1:
            {
                pSEG->SEG1 &= ~bitmask;
                pSEG->SEG1 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_2:
            {
                pSEG->SEG2 &= ~bitmask;
                pSEG->SEG2 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_3:
            {
                pSEG->SEG3 &= ~bitmask;
                pSEG->SEG3 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_4:
            {
                pSEG->SEG4 &= ~bitmask;
                pSEG->SEG4 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_5:
            {
                pSEG->SEG5 &= ~bitmask;
                pSEG->SEG5 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_6:
            {
                pSEG->SEG6 &= ~bitmask;
                pSEG->SEG6 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_7:
            {
                pSEG->SEG7 &= ~bitmask;
                pSEG->SEG7 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_8:
            {
                pSEG->SEG8 &= ~bitmask;
                pSEG->SEG8 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_9:
            {
                pSEG->SEG9 &= ~bitmask;
                pSEG->SEG9 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_10:
            {
                pSEG->SEG10 &= ~bitmask;
                pSEG->SEG10 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_11:
            {
                pSEG->SEG11 &= ~bitmask;
                pSEG->SEG11 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_12:
            {
                pSEG->SEG12 &= ~bitmask;
                pSEG->SEG12 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_13:
            {
                pSEG->SEG13 &= ~bitmask;
                pSEG->SEG13 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_14:
            {
                pSEG->SEG14 &= ~bitmask;
                pSEG->SEG14 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_15:
            {
                pSEG->SEG15 &= ~bitmask;
                pSEG->SEG15 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_16:
            {
                pSEG->SEG16 &= ~bitmask;
                pSEG->SEG16 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_17:
            {
                pSEG->SEG17 &= ~bitmask;
                pSEG->SEG17 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_18:
            {
                pSEG->SEG18 &= ~bitmask;
                pSEG->SEG18 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_19:
            {
                pSEG->SEG19 &= ~bitmask;
                pSEG->SEG19 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_20:
            {
                pSEG->SEG20 &= ~bitmask;
                pSEG->SEG20 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_21:
            {
                pSEG->SEG21 &= ~bitmask;
                pSEG->SEG21 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_22:
            {
                pSEG->SEG22 &= ~bitmask;
                pSEG->SEG22 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_23:
            {
                pSEG->SEG23 &= ~bitmask;
                pSEG->SEG23 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_24:
            {
                pSEG->SEG24 &= ~bitmask;
                pSEG->SEG24 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_25:
            {
                pSEG->SEG25 &= ~bitmask;
                pSEG->SEG25 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_26:
            {
                pSEG->SEG26 &= ~bitmask;
                pSEG->SEG26 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_27:
            {
                pSEG->SEG27 &= ~bitmask;
                pSEG->SEG27 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_28:
            {
                pSEG->SEG28 &= ~bitmask;
                pSEG->SEG28 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_29:
            {
                pSEG->SEG29 &= ~bitmask;
                pSEG->SEG29 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_30:
            {
                pSEG->SEG30 &= ~bitmask;
                pSEG->SEG30 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_31:
            {
                pSEG->SEG31 &= ~bitmask;
                pSEG->SEG31 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_32:
            {
                pSEG->SEG32 &= ~bitmask;
                pSEG->SEG32 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_33:
            {
                pSEG->SEG33 &= ~bitmask;
                pSEG->SEG33 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_34:
            {
                pSEG->SEG34 &= ~bitmask;
                pSEG->SEG34 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_35:
            {
                pSEG->SEG35 &= ~bitmask;
                pSEG->SEG35 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_36:
            {
                pSEG->SEG36 &= ~bitmask;
                pSEG->SEG36 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_37:
            {
                pSEG->SEG37 &= ~bitmask;
                pSEG->SEG37 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_38:
            {
                pSEG->SEG38 &= ~bitmask;
                pSEG->SEG38 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_39:
            {
                pSEG->SEG39 &= ~bitmask;
                pSEG->SEG39 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_40:
            {
                pSEG->SEG40 &= ~bitmask;
                pSEG->SEG40 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_41:
            {
                pSEG->SEG41 &= ~bitmask;
                pSEG->SEG41 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_42:
            {
                pSEG->SEG42 &= ~bitmask;
                pSEG->SEG42 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_43:
            {
                pSEG->SEG43 &= ~bitmask;
                pSEG->SEG43 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_44:
            {
                pSEG->SEG44 &= ~bitmask;
                pSEG->SEG44 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_45:
            {
                pSEG->SEG45 &= ~bitmask;
                pSEG->SEG45 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_46:
            {
                pSEG->SEG46 &= ~bitmask;
                pSEG->SEG46 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_47:
            {
                pSEG->SEG47 &= ~bitmask;
                pSEG->SEG47 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_48:
            {
                pSEG->SEG48 &= ~bitmask;
                pSEG->SEG48 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_49:
            {
                pSEG->SEG49 &= ~bitmask;
                pSEG->SEG49 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_50:
            {
                pSEG->SEG50 &= ~bitmask;
                pSEG->SEG50 |= dat;
                break;
            }
            case  LL_LCD_SEG_PIN_51:
            {
                pSEG->SEG51 &= ~bitmask;
                pSEG->SEG51 |= dat;
                break;
            }
            default:
            {
                LL_LCD_ClearSeg(LCDx);
                //---使能
                LL_LCD_Disable(LCDx);
                break;
            }
        }
    }

    //===结构体定义
    typedef struct
    {
        uint32_t Prescaler;
        uint32_t Divider; 
        uint32_t Duty;          
        uint32_t Bias;           
        uint32_t Mode;
        uint32_t ClockSource;
        uint32_t VoltageSource;   
        uint32_t Contrast;        
        uint32_t BlinkMode;      
        uint32_t BlinkFrequency; 
        uint32_t MuxSegment;     
    }LL_LCD_InitTypeDef;

    //===函数定义
    uint8_t LL_LCD_DeInit(LCD_TypeDef* LCDx);
    void LL_LCD_StructInit(LL_LCD_InitTypeDef* LCD_InitStruct);
    uint8_t LL_LCD_Init(LCD_TypeDef* LCDx, LL_LCD_InitTypeDef* LCD_InitStruct);

    ///
#ifdef __cplusplus
}
#endif 

#endif /* HC32L1XX_LL_PCNT_H_ */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值