首先还是必要的说明,鄙人经验有限,如发现问题还请不吝赐教,反馈到邮箱mr.li.ming@qq.com

使用的液晶屏

单片机引脚

液晶的COM1-COM4分别对应单片机LCD_COM0-LCD_COM3

默认LSI(内部低速时钟)是打开的,一般不操作,如果被关闭了,要先打开LSI。

所以先看看程序

void LCD_GLASS_Init(void)
{
/* Enable LCD/RTC clock */
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);//打开RTC时钟
CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE);//打开LCD时钟
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_1);//设置RTC时钟源 /* Initialize the LCD */
LCD_Init( LCD_Prescaler_1,//
LCD_Divider_31, //
LCD_Duty_1_4, //使用的4个COM所以是1/4
LCD_Bias_1_3, //
LCD_VoltageSource_Internal);//内部电压源 LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0x08);//SEG11 0X08
LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0x3C);//SEG18,SEG19,SEG20,SEG21 0X3C /* To set contrast to mean value */
LCD_ContrastConfig(LCD_Contrast_3V1);//设置对比度
LCD_DeadTimeConfig(LCD_DeadTime_0);//设置死区时间
LCD_PulseOnDurationConfig(LCD_PulseOnDuration_1);//设置停留时间 /* Enable LCD peripheral */
LCD_Cmd(ENABLE);//使能驱动
}

配置---哪些段被用来驱动LCD。

板上使用了PA4,PA5,PA6,PD1四个COM,PB1,PD4,PD5,PD6,PD7五个SEG

PB1 - SEG11

PD4 - SEG18

PD5 - SEG19

PD6 - SEG20

PD7 - SEG21

LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0x00);//SEG0-7没有使用
LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0x08);//SEG11 0X08
LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0x3C);//SEG18,SEG19,SEG20,SEG21 0X3C

然后在对应的位置写1显示写0清除,比如下面的清屏

void LCD_GLASS_Clear(void)
{
uint8_t counter = 0;
for (counter = 0; counter <= LCD_RAMRegister_13; counter++)
{
LCD->RAM[counter] = 0x00;
}
}

要是想全部显示看看段码都有没有坏,就把清屏的修改一下

void LCD_GLASS_Check(void)
{
uint8_t counter = 0;
for (counter = 0; counter <= LCD_RAMRegister_13; counter++)
{
LCD->RAM[counter] = 0xff;
}
}

下面着重记录一下踩过的坑:

LCD_Init();函数里面的最后一个参数是LCD_VoltageSource_Internal还是LCD_VoltageSource_External

官方STM8L-DISCOVERY的原理图上

R25这个0R电阻没有焊接,所以代码里使用的是LCD_VoltageSource_Internal

如果焊接了,代码里就要使用LCD_VoltageSource_External

STM8L052C6T6液晶LCD驱动过程的更多相关文章

  1. 联盛德 HLK-W806 (四): 软件SPI和硬件SPI驱动ST7735液晶LCD

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  2. 联盛德 HLK-W806 (九): 软件SPI和硬件SPI驱动ST7789V液晶LCD

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  3. 联盛德 HLK-W806 (十一): 软件SPI和硬件SPI驱动ST7567液晶LCD

    目录 联盛德 HLK-W806 (一): Ubuntu20.04下的开发环境配置, 编译和烧录说明 联盛德 HLK-W806 (二): Win10下的开发环境配置, 编译和烧录说明 联盛德 HLK-W ...

  4. sc7731 Android 5.1 LCD驱动简明笔记之二

    此篇笔记基于sc7731 - android 5.1,对lcd的framebuffer做一个简明笔记. 一共分为两大部分:第一部分,关于LCD的硬件方面的:第二部分,关于lcd核心处理(framebu ...

  5. android系统平台显示驱动开发简要:LCD驱动调试篇『四』

    平台信息: 内核:linux3.4.39系统:android4.4 平台:S5P4418(cortex a9) 作者:瘋耔(欢迎转载,请注明作者) 欢迎指正错误,共同学习.共同进步!! 关注博主新浪博 ...

  6. 【转】Android LCD(四):LCD驱动调试篇

    关键词:android LCD TFTSN75LVDS83B  TTL-LVDS LCD电压背光电压 平台信息:内核:linux2.6/linux3.0系统:android/android4.0 平台 ...

  7. 【电子基础】液晶显示器原理·LCD驱动基础

    LCD显示器概述   ——>液晶显示器,LCD为英文 Liquid Crystal Display的缩写,它是一种数字显示技术,可以通过液晶和彩色过滤光源,并在平面面板上产生图像.   ——&g ...

  8. Smart210学习-----lcd驱动

    帧缓冲设备 1.1帧缓冲设备:帧缓冲(framebuffer)是 Linux 系统为显示设备提供的一个接口,它将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行 ...

  9. S3C2440 LCD驱动(FrameBuffer)实例开发<一>(转)

    1. 背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此学习LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示 ...

随机推荐

  1. Markdown&Latex学习笔记,qwq

    目录 推荐的文章 居中 字体 加颜色 指数 分数 根号 神奇的符号(不要多想qwq) 箭头 小于号 大括号 累加符号 累乘符号 下标 \(\phi\)&\(\varphi\) \(\equiv ...

  2. React-HelloWorld

    React-HelloWorld 最简单的React示例如下: ReactDOM.render( <h1>Hello,world!</h1>, document.getelem ...

  3. pip命令提示unknow or unsupported command install解决方法

    执行pip命令安装模块,提示unknow or unsupported command install 原因: 使用where pip查看, 电脑中装了loadrunner,存在多个pip,不知道使用 ...

  4. Powershell基础学习

    从吐司偷来的图片,拿来当做引导吧: 0x01 简介 Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能.当然 ...

  5. kali linux 局域网攻击(一)

    一.攻击准备 此为局域网攻击测试 1)查看自己的IP地址,记住默认网关 2)扫描局域网中的IP fping -asg nbtscan -r 网关地址/  3)使用arpspoof进行断网攻击 攻击前, ...

  6. SpringCache

    官方文档:https://docs.spring.io/spring/docs/4.3.13.RELEASE/spring-framework-reference/htmlsingle/#cache ...

  7. asp.net core session使用

    一.配置回话状态 Microsoft.AspNetCore.App metapackage 中包含的 Microsoft.AspNetCore.Session 包提供中间件来管理会话状态. 若要启用会 ...

  8. LB中使用到的一致性Hash算法的简单实现

    1.类的Diagram 2.代码实现 2.1.Node类,每个Node代表集群里面的一个节点或者具体说是某一台物理机器: package consistencyhash; import lombok. ...

  9. web.py小记

    what's the web.py 相比于 Django 和 Flask,web.py 是轻量到不能再轻量的 web 框架,所有的功能都需要自己实现,所有不适合中大型 web 的开发,不过对于简单的 ...

  10. MySQL慢查询参数

    开启mysql慢查询日志 修改/etc/mysql/my.cnf配置文件,添加: [mysqld]slow_query_log = onslow_query_log_file = /var/lib/m ...