#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_ */
HC32L17x的LL驱动库之lcd
最新推荐文章于 2023-07-04 23:49:30 发布