基于stm32f103RB系统板驱动LCD显示屏

简单介绍下LCD以及使用
摘要由CSDN通过智能技术生成

一,LCD是什么?LCD干嘛用的?

由以下构成

 

用处:显示你想显示的东西。(对不起,是废话)

二,LCD怎么用?

备注:使用的就是COG LCD液晶屏,它只能显示黑白图像和文字,显示的像素大小为128*128。

LCD显示点阵与DD RAM(显示数据存储器)地址的对应关系:

  • PAGE:8个行表示一“页”,一个128*128点阵的屏分为16个“页”,从第0“页”到第15“页”。
  • DB7--DB0:数据是从下向上排列的。最低位D0在最上面,最高位D7在最下面。每一位(bit)数据对应一个点阵,通常“1”代表点亮该点阵,“0”代表关闭该点阵。如下图所示:

 其一行有128个像素点,可通过向存储器写入数据来点亮/熄灭该点阵

接下来我们将用LCD屏幕来显示简单的中英文字符和图片,通过以上介绍,我们可以得出COG LCD液晶显示需要的相关设置步骤如下:

  • 1、设置STM32 F1与COG液晶显示屏模块相连接的IO将COG液晶模块相连的IO口初始化以便驱动LCD.
  • 2,初始化COG液晶显示屏模块。初始化序列就是向LCD控制器写入一系列的设置值(比如伽马校准),这些初始化序列一般LCD供应商会提供给客户,我们直接使用这些序列即可。在初始化之后,LCD才可以正常使用。
  • 3、显示中英文字符和图片,通过调用字符显示函数实现图片/字符显示到COG LCD屏幕模块上。

三、实际操作

 

/**
  ****************************************************************************
  * @文件名     : lcd.c
  * @作者       : Apana
  * @文件版本   : V1.0.0
  * @编写日期   : 2020-08-17
  * @说明       : lcd源文件
	*	@备注       : lcd使用JTAG引脚,在使用之前需要禁用JTAG,使能SW
  ******************************************************************************/
/*----------------------------------------------------------------------------
  更新日志:
  2020-08-17 V1.0.0:初始版本
  ----------------------------------------------------------------------------*/
	

/* 包含的头文件 --------------------------------------------------------------*/
#include "lcd.h"
#include "gbhz.h"  	 
#include "ascii.h"
#include "delay.h"

u8 LCD_GRAM[16][128]; //显示缓存

//初始化LCD_GPIO
void LCD_GPIO_Init(void)
{
	GPIO_InitTypeDef  GPIO_InitStructure;		//GPIO结构体定义

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC, ENABLE); //使能端口时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //开启复用时钟
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);	//禁用JTAG,使能SW
 
	//数据引脚
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_12 | GPIO_Pin_14 | GPIO_Pin_15 ; //PC
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_8  ; //PB
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
	//控制引脚
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	GPIO_SetBits(GPIOC,GPIO_Pin_9);		  //将引脚置
	GPIO_ResetBits(GPIOC,GPIO_Pin_8 | GPIO_Pin_10 | GPIO_Pin_11);	  //将引脚复位
	//LCD-RD
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值