title: stm8l LCD显示
date: 2021/12/14
categoreies:
tags:
如图所示,可以看到LCD配置寄存器包含4个控制寄存器LCD_CRx、频率选择寄存器LCD_FRQ、端口掩码寄存器LCD_PM、LCD显示寄存器LCD_RAM。
LCD初始化配置
stm8L的LCD显示
初始化配置分为以下几个步骤:
- 背光LED灯初始化
- 使能LCD外设时钟
- LCD参数设置
- LCD端口设置
- LCD对比度设置
注:使用寄存器库将指针->更改为下划线_即可。u8_t即unsigned char类型。
void HW_Init_LcdIO(void)
{
/* configure PB5, Output and push-pull and Low level */
GPIOB->DDR |= 0x20;
GPIOB->CR2 &= ~0x20;
GPIOB->ODR &= ~0x20;
GPIOB->CR1 |= 0x20;
/*Enables the LCD peripheral clock*/
CLK->PCKENR2 |= 0x08;
/*lcd configure */
LCD->FRQ = 0x30; /* LCD_Prescaler_8,LCD_Divider_16 */
LCD->CR1 &= ~0x06; /* Clear the duty bits */
LCD->CR4 &= ~0x02; /* Clear the DUTY8 bit */
LCD->CR1 |= 0x02; /* Configure the Duty cycle 1/2 */
LCD->CR1 |= 0x00; /* Configure the Bias cycle 1/3 */
LCD->CR2 &= ~0x01; /* Clear the voltage source bit */
LCD->CR2 |= 0x01; /* External voltage source for the LCD */
/*LCD port configuration*/
LCD->PM[0x00] = 0xff; /* seg 0-7 */
LCD->PM[0x01] = 0x3f; /* seg 8,9 12,13*/
LCD->PM[0x02] = 0x00;
LCD->PM[0x03] = 0x00;
/*Configure LCD Contrast*/
LCD->CR2 |= 0x0E;
/*Configure LCD DeadTime*/
LCD->CR3 |= 0x01;
/*Configures the LCD pulses on duration*/
LCD->CR2 |= 0xA0;
/* Enable Lcd */
LCD->CR3 |= 0x40