STM8L LCD配置与com使用问题
void LCD_GPIO_Config(void)
{
//SEG GPIO Init
GPIO_Init(GPIOE, GPIO_Pin_0|GPIO_Pin_1,GPIO_Mode_Out_PP_Low_Fast);//SEG1,2
GPIO_Init(GPIOE, GPIO_Pin_2|GPIO_Pin_3,GPIO_Mode_Out_PP_Low_Fast);//SEG3,4
GPIO_Init(GPIOE, GPIO_Pin_4|GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast);//SEG5,6
GPIO_Init(GPIOD, GPIO_Pin_0|GPIO_Pin_2,GPIO_Mode_Out_PP_Low_Fast);//SEG7,8
GPIO_Init(GPIOD, GPIO_Pin_3,GPIO_Mode_Out_PP_Low_Fast);//SEG9
GPIO_Init(GPIOB, GPIO_Pin_0|GPIO_Pin_1,GPIO_Mode_Out_PP_Low_Fast);//SEG10,11
//COM GPIO Init
// GPIO_Init(GPIOF, GPIO_Pin_4|GPIO_Pin_5,GPIO_Mode_Out_PP_Low_Fast);//COM4,5
// GPIO_Init(GPIOF, GPIO_Pin_6|GPIO_Pin_7,GPIO_Mode_Out_PP_Low_Fast);//COM6,7
GPIO_Init(GPIOA, GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6,GPIO_Mode_Out_PP_Low_Fast);//COM1,2
GPIO_Init(GPIOD, GPIO_Pin_1,GPIO_Mode_Out_PP_Low_Fast);//COM3,4
}
void lib_LCD_Config(void)
{
/*
The LCD is configured as follow:
- clock source = LSE (32.768 KHz)
- Voltage source = Internal
- Prescaler = 2
- Divider = 18 (16 + 2)
- Mode = 1/4 Duty, 1/3 Bias
- LCD frequency = (clock source * Duty) / (Prescaler * Divider)
= 228 Hz ==> Frame frequency = 57 Hz */ /* Enable LCD clock */
CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE); /* Initialize the LCD */
LCD_Init(LCD_Prescaler_2, LCD_Divider_18, LCD_Duty_1_4,
LCD_Bias_1_3, LCD_VoltageSource_Internal); /* Mask register*/
LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xFE);
LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0x0F);
LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0x00);
LCD_PortMaskConfig(LCD_PortMaskRegister_3, 0x00);
// LCD_ContrastConfig(LCD_Contrast_3V0);
LCD_ContrastConfig(LCD_Contrast_Level_7);
LCD_DeadTimeConfig(LCD_DeadTime_0);
LCD_PulseOnDurationConfig(LCD_PulseOnDuration_1); LCD_Cmd(ENABLE); /*!< Enable LCD peripheral */
}
LCD的使用需要打开RTC,相关设置都在CLK中。

一些简单的初始化,没什么太大的疑点通过手册就能看个大概明白;
LCD_Init中:
- LCD_Prescaler_2时钟预分频,对输入源分频,保证屈辱频率;
- LCD_Divider_18,分频器,最小倍数16;
- LCD_Duty_4,四个控制位(com);
- LCD_Bias_3,偏置电压3V
- LCD_VoltageSource_Internal,LCD电源的输入源
LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xFE);选择打开的SEG位

使用com使用的问题:

PAGE_COM :
0:地址0x0C至0x021可访问LCD RAM的第一页,对应于COM0,1,2和3
1:地址0x0C至0x021可访问LCD RAM的第一页,对应COM4,5,6和7
Bit 1 DUTY8:1/8 dty使能(8个com)
0:通过LCD_CR1寄存器中的DUTY [1:0]位选择duty;
1:启用1/8;
这里指出在状态1下是油COM4567访问第一页LCD RAM的,但是

当设置LCD_CR4中的DUTY8位(激活8个COM)时,LCD RAM通过两个页面访问,每个页面由LCD_CR4寄存器中的PAGE_COM位激活:
当PAGE_COM = 0时,地址0x0C至0x21可访问第一页,对应COM0,1,2和3.请参阅PAGE_COM位说明。
当PAGE_COM = 1时,地址0x0C至0x21可访问第二页,对应COM4,5,6和7.请参阅PAGE_COM位说明。
综上所述和测试:
使用com0-3控制LCD_RAM第一页(可能包括第二页),DUTY8置0,PAGE_COM置0;
使用com4-7控制LCD_RAM第一页(可能包括第二页),DUTY8置1后启用8个com时且PAGE_COM置1;
测试时,只有在开通8个控制脚时,才可以使用com4-7,但是com0-3会同步输出信号会影响其他正在使用com0-3占用的io;所以PAGE_COM只能用来控制第二页LCD_RAM的使能。
STM8L LCD配置与com使用问题的更多相关文章
- multiwii 2.4配置页面中文注释
...
- LCD底层驱动分析
根据分析的框架,自己写一个LCD驱动程序 1分析LCD硬件原理图 Von和Voff接的是一个电源电路,通过LCD_POWER接的是GPG4来控制LCD电源,高电平表示开启LCD电源 VM接的是CPU的 ...
- S3C2440 LCD驱动(FrameBuffer)实例开发<一>(转)
1. 背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此学习LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示 ...
- LCD驱动(FrameBuffer)实例开发讲解
一.开发环境 主 机:VMWare--Fedora 9 开发板:Mini2440--64MB Nand, Kernel:2.6.30.4 编译器:arm-linux-gcc-4.3.2 二.背景知识 ...
- LCD驱动移植在在mini2440(linux2.6.29)和FS4412(linux3.14.78)上实现对比(deep dive)
1.Linux帧缓冲子系统 帧缓冲(FrameBuffer)是Linux为显示设备提供的一个接口,用户可以将帧缓冲看成是显示内存的一种映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作 ...
- linux qcom LCD framwork
点击打开链接 0.关键字 MDSS : Multimedia Display sub system DSI: Display Serial Interface 1.涉及文件 (1) drivers\v ...
- LCD调试1.0
所谓调lcd timing就是去调lcd时序,一般是6个部分:HFPD(在一行扫描以前需要多少个像素时钟),HBPD(一行扫描结束到下一行扫描开始需要多少个像素时钟),VFPD(一帧开始之前需要多少个 ...
- linux 驱动之LCD驱动(有framebuffer)
<简介> LCD驱动里有个很重要的概念叫帧缓冲(framebuffer),它是Linux系统为显示设备提供的一个接口,应用程序在图形模式允许对显示缓冲区进行读写操作.用户根本不用关心物理显 ...
- 【驱动】LCD驱动(FrameBuffer)分析
背景知识 在多媒体的推动下,彩色LCD越来越多地应用到嵌入式系统中,PDA和手机等大多都采用LCD作为显示器材,因此LCD的应用很有实际意义! LCD工作的硬件需求:要使一块LCD正常的显示文字或图像 ...
随机推荐
- 前端开发面试题总结之——JAVASCRIPT(三)
___________________________________________________________________________________ 相关知识点 数据类型.运算.对象 ...
- mybatis调用存储过程,获取返回的游标
将调用存储过程参数放入map中,由于返回的游标中包含很多参数,所以再写一个resultmap与之对应,类型为hashmap.设置返回的jdbcType=CURSOR,resultMap设置为id对应的 ...
- 在win中,给powershell客户端,搭建sshd服务器。
下载:https://github.com/PowerShell/Win32-OpenSSH/releases 问:为什么要用这个sshd?答:这是微软用,openssh官方的源码,源码网址: ...
- SpingMVC的工作流程
一.SpringMVC的主要组件 前端控制器(DisatcherServlet):接收请求,响应结果,返回可以是json,String等数据类型,也可以是页面(Model). 处理器映射器(Handl ...
- Spring 基础知识(一)基本概念 DI、IOC、AOP
DI(依赖注入) 和IOC(控制反转)都是一种设计思想,要理解他们,让我们从coding中的一些痛点入手. 依赖注入 Dependency Injection : 如果A类要使用B类的一个方法,首先必 ...
- centos7 eclispe 编译C++遇到的问题总结
最近由于工作的需要,又开始回归之前已经遗忘了的技术.arm嵌入式这个古老的名词. 开始选择了linuxminit,开始的linuxminit17以前还可以,可是用了一下linuxminit19,发现r ...
- SQLZOO网页中SQL的答案(SELECT from nobel篇)
SELECT from nobel篇 1. 更改查詢以顯示1950年諾貝爾獎的獎項資料. 答案: SELECT yr, subject, winner FROM nobel WHERE yr = 19 ...
- 课下作业——MyCP
作业要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin 用来把文本文件(内容为 ...
- ZooKeeper 单机版安装和配置
Zookeeper 下载链接:http://mirrors.shu.edu.cn/apache/zookeeper/ #wget https://mirrors.tuna.tsinghua.edu.c ...
- [RESTful] DHC Client
安装Chrome的DHC插件, 进入DHC Client谷歌插件网页. 安装到Chrome浏览器: 点击Chrome设置 点击扩展程序 把刚刚下载的文件解压缩 把 .crx 后缀的文件直接拖入Chro ...