液晶显示屏

LCD 实验

匿名 (未验证) 提交于 2019-12-02 23:48:02
LCD 时序图、操作原理 S3C2440 LCD 控制器 源码分析 概念介绍 VSYNC:垂直方向同步信号 HSYNC:水平方向同步信号 VDEN:使能信号 LED:背光信号,背光电压,升压芯片,GPB0 管脚输出高电平 VCLK:时钟信号 VD0~VD23:数据信号 写程序步骤 写程序时候只需要设置几个参数就可以了。 16bpp,bit per pixel 像素值写在 Frame Buffer 里面即可。 1. 打开背光 2. 时序设置 3. 在 Frame Buffer 中写数据 Frame Buffer 数据格式 LCD 选定之后,像素的宽度是固定的 调色板 16 bpp Frame Buffer -->> LCD 控制器 -->> LCD 调色板 8 位 转 16 位 LCD 控制器 转载请标明出处: LCD 实验 文章来源: LCD 实验

STM32 LCD英文字符显示学习笔记

匿名 (未验证) 提交于 2019-12-02 23:32:01
开发板:野火指南者( STM32F103VE) STM32库版本: STM32F10x_StdPeriph_Lib_V3.5.0 IDE:KEIL5(代码编写很不方便,只在编译的时候用到) 代码编写工具:Source Insight 4.0(跟读代码、编写代码的最佳工具) 硬件原理图: 新建user_fsmc_lcd.h、user_fsmc_lcd.c、main.c 3个文件,并从 STM32官方库的例子中将stm32f10x_it.c、stm32f10x_it.h、stm32f10x_conf.h拷贝到自己的工程目录下。 1 #ifndef __USER_FSMC_LCD_H 2 #define __USER_FSMC_LCD_H 3 4 #include "stm32f10x.h" 5 6 #define LCD_CMD ((uint32_t)0x60000000) 7 #define LCD_DATA ((uint32_t)0x60020000) 8 9 #define TEXTCOLOR 0xF800 10 #define BACKGROUND 0x0000 11 12 13 14 void time_delay(uint32_t t); //时间延时函数 15 void user_lcd_display_string(char * pchar); //显示英文字符串函数

PyQt5--Signal&Slot

匿名 (未验证) 提交于 2019-12-02 22:11:45
1 # -*- coding:utf-8 -*- 2 ''' 3 Created on Sep 14, 2018 4 5 @author: SaShuangYiBing 6 ''' 7 import sys 8 from PyQt5.QtCore import Qt 9 from PyQt5.QtWidgets import QApplication,QWidget,QLCDNumber,QSlider,QVBoxLayout,QHBoxLayout 10 11 class New_test(QWidget): 12 def __init__(self): 13 super().__init__() 14 self.initUI() 15 16 def initUI(self): 17 lcd = QLCDNumber(Qt.Vertical,self) 18 lcd.setDigitCount(5) #用来控制显示的位数 19 # lcd.setSegmentStyle(QLCDNumber.Flat) #设置 LCD number字体样式:Outline,轮廓突出,颜色为背景色;Filled,内部填充型,颜色为黑色;Flat,平面型 20 # lcd.setMaximumSize(50,50) #用来控制LCD的宽和高 21 # lcd.setMaximumWidth(300)

[51单片机]HC-SR04超声波模块与1602液晶显示

不问归期 提交于 2019-12-01 09:35:02
  一,模块介绍 trig-使能引脚<输出超过10us高电平启动模块> echo-接收引脚<模块启动后在此脚发出8个40khz脉冲并产生高电平,高电平开始到结束的时间就是探测时间> vcc-电源 gnd-接地 二,使用 trig 与 echo 接单片机IO口; vcc 与 gnd 接单片机VCC,GND; 代码: #include<reg52.h> #include<intrins.h> void delay(unsigned char z)//延时 z 个毫秒 { unsigned char x,y; for(x=0;x<z;x++) { for(y=0;y<110;y--) { ; } } } /***********************LCD1602**************************/ sbit EN = P2^7; sbit RS = P2^6; //数据/命令选择 1/0 sbit RW = P2^5; //读/写选择 1/0 void lcd_bus() //检测忙 { unsigned char i; P0 = 0XFF; RS = 0; RW = 1; for(i=0;i<200;i++) { EN = 0; EN = 1; if(!(P0&0X80)) { break; } } EN = 0; } void lcd_date(unsigned

STM32 TFT液晶屏与FSMC

怎甘沉沦 提交于 2019-12-01 07:21:45
目前网上的STM32的程序基本上都是从正点或者野火开发板为基础搞的,由于开发板的例程是基于正点的,但是板子的接线却不一致,这使得烧程序后液晶屏无法显示的问题。开发板的原理图如图 FSMC FSMC,即灵活的静态存储控制器,STM32F4 的FSMC 接口支持包括SRAM、NAND FLASH、NOR FLASH 和PSRAM 等存储器,我们这里使用的2.8寸液晶屏可以被看做是SRAM: 读写控制通过RD/WR设置 RS的高低控制是写数据还是写地址 我们希望使用SRAM的方式访问LCD,因此选择BANK1,原理图中RS接的是A12,即通过第12位决定是向LCD写命令还是写数据,片选信号接的NE4,可以知道 Bank1所选区 片选信号 地址范围 第1区 FSMC_NE1 0X6000,0000~63FF,FFFF 第2区 FSMC_NE2 0X6400,0000~67FF,FFFF 第3区 FSMC_NE3 0X6800,0000~6BFF,FFFF 第4区 FSMC_NE4 0X6C00,0000~6FFF,FFFF 基地址的范围是从 0x6c000000 开始的,由于FSMC的地址线 FSMC_A 的A[0]一定要和外设的A[0]接在一起,即已经被占用,不过对于LCD的液晶屏控制来说并不影响,选择其他FSMC_A的引脚依然可以满足RS控制,FSMC的地址范围为0-25

STM32F4+LCD屏幕驱动原理

余生颓废 提交于 2019-12-01 07:10:26
以下为LCD屏幕简单的驱动原理(屏幕型号为4.3寸 TFTLCD模块 驱动IC为NT35510): 1、首先介绍一下这个模块的引脚以及功能: LCD_CS:LCD片选信号 LCD_WR:LCD写信号 LCD_RD:LCD读信号 DB[17:1]:16位双向数据线 LCD_RST:硬复位LCD信号 LCD_RS:命令/数据标志(0:命令,1:数据) BL_CTR:背光控制信号 T_MISO/T_MOSI/T_PEN/T_CS/T_CLK:触摸屏接口信号(屏幕只显示时,这几个接口用不到) 2、用FSMC驱动LCD FSMC是灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接。FSMC可以驱动LCD的主要原因是因为FSMC的读写时序和LCD的读写时序相似,于是把LCD当成一个外部存储器来用。利用FSMC在相应的地址读或写相关数值时,STM32的FSMC会在硬件上自动完成时序上的控制,所以我们只要设置好读写相关时序寄存器后,FSMC就可以帮我们完成时序上的控制了。这里连接的时候有一个数据宽度连接的问题,根据STM32F4中文参考手册介绍,当LCD使用16位宽度的数据传输(也就是有16条数据线)的时候,HADDR数据传输到FSMC_A地址时需要右移一位。也就是HADDR[25:1]-->FSMC_A[24:0]对应相接。 FSMC_A是STM32的硬件的外部接口

STM32官方评估板TFT LCD驱动移植注意点

浪尽此生 提交于 2019-12-01 07:09:52
STM32的官方评估板:STM3240G-EVAL TFT LCD驱动芯片:9325 官方给的例程比较尴尬,既不是寄存器版本,也不是库函数版本,所以就打算参照探索者开发板进行移植,因为MCU都是STM32F4xx系列的,在移植TFT LCD(FSMC模式)时,有以下注意点: 1.官方评估板与LCD驱动芯片的几个接口方式不同,主要是CS,RS 2.官方评估板采用了NE3,而探索者例程是采用了NE4 3.(!!!重要,否则会导致评估板挂掉,无法下载固件)官方评估板的晶振是25M,而探索者是8M,需要对相应的.h文件进行配置,搜索资料,如下: 修改的地方之一:stm32f4xx.h里面的HSE_VALUE,系统默认采用外部8M晶振,所以 #define HSE_VALUE ((uint32_t)8000000) ,现把它修改为 #define HSE_VALUE ((uint32_t)25000000) 修改的地方之二:系统通过PLL倍频到168M,所以在配置PLL的时候,也需要作相应的修改。在system_stm32f4xx.c里,需要把PLL_M修改为25,不然会超频到336M的主频,使STM32不能正常工作,常见表现为掉进HardFault_Handler()中。如果固件库为V1.5.0,就不需要改(无此内容)。 4.在移植时,发现探索者源码中的重新定向函数错误: _sys

STM32HAL库使用SPI驱动1.44寸TFTLCD

隐身守侯 提交于 2019-12-01 07:05:11
  关于STM32F4单片机,使用HAL库自带的SPI,驱动TFTLCD屏幕的资料网上好像不太多,正好最近我做了这项工作,把成果分享给大家。我的代码实现了这些功能:任意坐标画点,指定首尾坐标画线,画方框,指定区域显示彩图,显示16* 16或者12* 12的汉字、ASCII码,并附带ASCII码表与少量的汉字字库。 硬件设计   屏幕选择:使用了一款低成本十六位彩屏,只要十块钱。 链接    厂家看到文章请联系我打广告费,哈哈。   虽然用这个屏幕的可能不多,但我了解到,只要其 控制芯片是ST7735S ,那么程序就应该差不多。不同的地方在于,厂家的封装与玻璃不太一样,玻璃有个伽马值不同,会导致颜色看上去不太一样。   屏幕的引脚信息   我的原理图设计:使用了STM32F405RG芯片的SPI1,屏幕没有MISO。 cubeMX中SPI的配置大致如下:   其实SPI的速度我选的是21MBITS/s,可能再快一点也行,没有测试。   其它引脚比较散,都是当做IO来用,CubeMX中的配置过程就不说了,汇总如下 名称 引脚 功能 LCD_RST PC5 屏幕复位 LCD_CD PB0 0数据1指令 SPI_MOSI PB5 数据线 SPI_CLK PB3 时钟线 LCD_CS PB1 片选,低电平有效 LCD_LED PB2 背光,高电平有效 发送数据与指令的基本函数  

fsmc 驱动lcd(二)地址的定义

£可爱£侵袭症+ 提交于 2019-12-01 07:01:44
这个地址的定义看了我一晚上,还是基础不牢 总算看懂了,记录如下: typedef struct { u16 LCD_REG; u16 LCD_RAM; } LCD_TypeDef; #define LCD_BASE ((u32)(0x6C000000 | 0x0000007E)) #define TFTLCD ((LCD_TypeDef *) LCD_BASE) 采用了A6 控制lcd的RS , NE4控制lcd的CS. 所有地址总线的bit7 为0 表示发送命令,为1表示数据。 #define TFTLCD ((LCD_TypeDef *) LCD_BASE) 之后, TFTLCD 就是结构体的首地址 0x6c00007e, 所以 TFTLCD -> LCD_REG地址 就是 0x6c00007e, 所以 TFTLCD -> LCD_RAM 地址就是 0x6c00007e+2= 0x6c000080。 来源: CSDN 作者: gonghaixu 链接: https://blog.csdn.net/gonghaixu/article/details/53750033

STM32驱动ILI9341控制器控制TFTLCD显示

让人想犯罪 __ 提交于 2019-12-01 07:01:17
一、用STM32控制TFTLCD显示的编程方法, 在编程驱动TFTLCD液晶显示器之前,我们先熟悉以下概念: 1、色彩深度,这是一个与TFTLCD显存对应的概念;所谓色彩深度就是每个像素点需要多少位的RGB 数据表示该点的颜色信息。注意,不同的TFTLCD显示器的RGB的对应关系不一样,这个可以在LCD 控制芯片手册中找到答案。 例: 某LCD显示支持8、16、24位RGB,这些位数是指该像素点 颜色由 8、16、 24 位RGB构成,但是 R\G\B三种颜色各占的位数可以查看数据手册。 2、TFTLCD的操作分为两种: A、对控制寄存器的读写操作(即程序员将要操作LCD显存寄存器的地址设置成可读或者可写)。 B、对显存寄存器的读写操作(即读写LCD显存寄存器)。 3、TFTLCD有一个索引寄存器,对控制寄存器操作前,需要对索引寄存器进行定入操作,用以指明 寄存器读写是针对那个寄存器的,具体操作步骤如下: RS为低电平状态下,写入两个字节的数据,第一个字节为零,第二个字节为寄存器索引值。 RS为高电平状态下,读取两个字节数据,第一个字节为高八位,第二个字节为低八位。 二、实验平台STM32F103RCT6与ILI9341 TFTLCD驱动模块 硬件采用 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大, 尤其在显示图片的时候,如果用 8 位数据线