STM8L052C6T6液晶LCD驱动过程

2019-12-02来源: eefocus关键字:STM8L052C6T6  液晶LCD  驱动过程

使用的液晶屏

单片机引脚

液晶的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的原理图上[object Object]

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

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

关键字:STM8L052C6T6  液晶LCD  驱动过程 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481695.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:stvd使用中的一些问题
下一篇:记一次stm8l程序跑飞

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32L151C8T6 的IAP实现方案
STM32L151C8T6的Bootloader设计思想:FLASH分三个区:Bootloader区: 校验备份程序,若满足条件将用备份程序替换用户程序,否者运行用户程序.运行区:运行用户程序,程序中要求能接受用户程序到备份区,接收完后,在备份区的程序头内打上标记,然后启动Bootloader,由Bootloader完成程序替换备份区:用户程序在此接受4.1 空间分区STM32L151C8T6有64KB的FLASH空间,每4KB是一个区,每个区有16个页,程序编程是按页来编程的.程序的Vector是按512的整数倍偏移的, 空间划分如下图, 后续所示的设置都是基于这个空间划分来配置的.程序头的含义是这个新程序正文的标签,标记
发表于 2019-09-11
STM32L151C8T6 的IAP实现方案
超低功耗研发-STM32L151C8T6芯片(二)低功耗模式
    默认情况下,系统复位后,控制器运行在RUN模式,在RUN模式下,CPU的时钟是由HCLK提供,如果CPU不需要一直保持运行 状态,是可以设置控制器为其他几种低功耗模式,比如,当控制器需要等待一个 外部中断事件时。这取决于用户选择合适的工作模式。    该芯片具有5中低功耗模式:    ①  低功耗运行模式:低功耗运行模式:适配器处于低电压模式,时钟频率限制在低频,部分外围的使用也受限。    ②  睡眠模式:Cortex-M3内核停止,外围器件保持运行状态,比如RTC一直运行。    ③ 低功耗睡眠模式:C
发表于 2019-07-31
超低功耗研发-STM32L151C8T6芯片(二)低功耗模式
STM32L151C8T6的串口配置
**STM32L151C8T6的串口配置    //////////////////////////////////////////////////////////////////    //加入以下代码,支持printf函数,而不需要选择use MicroLIB       #if 1    #pragma import(__use_no_semihosting)                 //标准库需要的支持函数 
发表于 2019-01-29
Lcd.h头文件下载-字符型液晶LCD的AVR单片机驱动程序头文件
/*****************************************************************************      单    位:广西民族大学物理与电子工程学院07物本班      文件名称:Lcd.h      文件标识:_LCD_H_      摘    要:字符型液晶LCD的AVR单片机驱动程序头文件      当前版本:V2.0
发表于 2019-11-25
stm32_19264液晶LCD驱动程序
编译器为:MDK4.0注意:若显示出现乱码的现象请适当修改延时函数/****************************lcd.h********************************************/#ifndef __LCD_H#define __LCD_H  #include "sys.h"#define LCD_RS  PFout(0)// PF.0#define LCD_E   PFout(1)// PF.1 #define LCD_CS1 PFout(2)// PF.2#define LCD_RST PFout(3)// PF.3#define
发表于 2018-06-03
STM32 驱动液晶LCD12864
#include "led.h"#undef APP_DE#include "hawk.h"液晶采用晶联讯电子的JLX19264G-260#define FEEDDOG() GPIOC->ODR^= GPIO_Pin_0//LCD IO初始化void LCD_Init(void){  GPIO_InitTypeDef  GPIO_InitStructure;   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA
发表于 2018-06-03
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved