文章目录


前言

一、LCD

二、触摸屏芯片XPT2046

1.XPT2046

2.函数

3.实用程序

三、示例程序

总结



前言

一个系统最缺不了人机交互的界面,就像电脑显示器一样,如果没有显示器,电脑自然就失去了很多的有意思的地方,嵌入式系统更是如此,不管做多少最终还是要拿出来展示,要让人轻而易举的理解,要让自己展示的东西通俗易懂。本文章部分参考官网数据手册,只供学习,如有侵权,请联系我,马上删帖道歉!


一、LCD

1B 芯片内 LCD 控制器(Display Controller)的详细描述和配置。Display Controller 作为一个整体的模块,该模块读取指针数据和图像数据,通过对这些数据进行格 式转换、颜色抖动、gamma 调整等步骤产生最终的数据输出,同时为两个显示处理单元产生 同步信号和数据使能信号,最后将最终处理后的图像数据和同步信号发往显示接口。

特性:

⚫ 支持格式转换

⚫ 最大显示支持到 1920×1080@60Hz

⚫ 同步信号可编程

⚫ Gamma 调整查找表

⚫ VBLANK 同步

数据格式:

Display Controller 支持以下数据格式:

R4G4B4 -> 12 bits per pixel

R5G5B5 -> 15 bits per pixel

R5G6B5 -> 16 bits per pixel

R8G8B8 -> 24 bits per pixel        (由此可见,内部并没有很大的字库,字体的大小最大24,如需更大需要文字取模)

寄存器:

更多LCD详解在:

链接:https://pan.baidu.com/s/15sifp9y_oxGASH_gAUsP2Q 
                提取码:1234

二、触摸屏芯片XPT2046

1.XPT2046

源代码:ls1x‐drv/spi/xpt2046/xpt1046.c

头文件:ls1x‐drv/include/spi/xpt2046.h

XPT2046 是否使用,在 bsp.h 中配置宏定义:

#define XPT2046_DRV

XPT2046 连接在 SPI0 的片选 1,在 xpt1046.c 中定义:

#define XPT2046_CS

XPT2046 的通信参数,在 XPT2046_read 函数中定义:

通信参数:

LS1x_SPI_mode_t tfr_mode =
{baudrate:       2000000,bits_per_char:  8,lsb_first:      false,clock_pha:     true,clock_pol:     true,clock_inv:      true,clock_phs:      false,
};
/* 通信速率 20M */
/* 通信字节的位数 */
/* 低位先发送 */
/* spi 时钟相位 */
/* spi 时钟极性 */
/* true: 片选低有效 */
/* true: spi 接口模式,
时钟与数据发送同步 */

2.函数

驱动程序 xpt1046.c 实现的函数:

int XPT2046_initialize(void *dev, void *arg); 初始化

int W25X40_read(void *dev, void *buf, int size, void *arg); 读数据

#if (PACK_DRV_OPS)extern driver_ops_t *ls1x_xpt2046_drv_ops;#define ls1x_xpt2046_init(spi, arg) \ls1x_xpt2046_drv_ops‐>init_entry(spi, arg)#define ls1x_xpt2046_read(spi, buf, size, arg) \ls1x_xpt2046_drv_ops‐>read_entry(spi, buf, size, arg)
#else#define ls1x_xpt2046_init(spi, arg)          XPT2046_initialize(spi, arg)#define ls1x_xpt2046_read(spi, buf, size, arg    XPT2046_read(spi, buf, size, arg)
#endif
注:XPT2046 芯片设计在 LCD 转接板上,通过 40Pins FPC 接口和主板连接;XPT2046 的 PENIRQ 信号使用 GPIO54(UART2_RX)连接芯片:
#define XPT2046_USE_GPIO_INT    0     /* 触摸屏 GPIO 中断支持 */
#define XPT2046_USE_GPIO_NUM    54       /* 触摸屏 GPIO 端口 */

3.实用程序

源代码:ls1x‐drv/spi/xpt2046/touch_utils.c

头文件:ls1x‐drv/include/spi/xpt2046.h

触摸信号使用消息发送的宏定义:

#define TOUCHSCREEN_USE_MESSAGE   0

触摸屏回调函数原型:

typedef void (*touch_callback_t)(int x, int y);

实用函数:

int do_touchscreen_calibrate(void); 执行触摸屏校正

int start_touchscreen_task(touch_callback_t cb); 启动触摸屏任务/线程

int stop_touchscreen_task(void); 终止触摸屏任务/线程

三、示例程序

取模说明:

取模软件链接:

链接:https://pan.baidu.com/s/1jwCGSg-9n37bp-WMoyV0Yg 
                提取码:1234

官方出品是没有显示图片的函数,故而需要自己添加:

disp_p:

void disp_p(unsigned int xpos,unsigned int ypos,unsigned int x1,unsigned int y1,unsigned char *ptrs)
{{int x, y;unsigned char *ptr = ptrs;for (y=0; y<y1; y++){for (x=0; x<x1; x++){unsigned int color;color = (*ptr << 8) | *(ptr+1);LS1x_draw_rgb565_pixel(x+xpos, y+ypos, color);ptr += 2;}}flush_dcache();}}

文字和背景色函数内部都有,直接调用即可!


总结

源码链接:

文本显示:龙芯1B:LCD显示文本例程-单片机文档类资源-CSDN文库

文字、图片:龙芯1B:LCD文字、图片显示例程-单片机文档类资源-CSDN文库  (总例程)

各效果:                 龙芯1B:LCD显示矩形框、水平线、对角线、画点、显示背景色、前景色、清屏例程-单片机文档类资源-CSDN文库

龙芯1B:LCD显示例程相关推荐

  1. 【龙芯1B】:LCD显示图片文字背景色前景色、小创语音控制lcd显示、数码管倒计时

    项目场景:     闲来无事,写了几个关于嵌入式技能大赛的任务.希望对大家有所帮助.本文开发板由百科荣创的龙芯1b开发板支持,关于嵌入式技能大赛的开发板.  LCD显示图片&文字&背景 ...

  2. 龙芯1B:光照BH1750例程

    文章目录 前言 一.BH1750是什么? 二.引脚图以及引脚说明 三.BH1750特点 四.使用步骤 1.基本步骤 2.代码 总结 前言 感谢各位朋友的关注,大家的关注是我不断更新的动力!这一期就写一 ...

  3. 龙芯1B:pwm的使用例程

    文章目录 前言 一.PWM是什么? 二.PWM 芯片 GP7101 1.驱动程序 gp7101.c 实现的函数: 三.pwm波形的产生 1.开发步骤 2.代码实现 总结 前言 up主的联系方式: 微信 ...

  4. 【龙芯1B】:有源蜂鸣器例程

    前言 大家对龙芯1B200有任何问题都可以私信我,大家的关注才是我不断更新的动力. 可能私信不能很及时的回,大家稍微谅解一下,看到立马就回. 一.蜂鸣器介绍 这里简单的介绍一下大家众所周知的蜂鸣器,蜂 ...

  5. 龙芯1B:串口通信例程

    文章目录 前言 一.串口通信? 1.串口通信的基础与分类 2.波特率 3.单工.半双工和全双工 4.起始位.数据位.奇偶校验位.停止位 5.TXD,RXD,GND 二.龙芯UART串口介绍 三.程序代 ...

  6. 龙芯1B:独立按键例程

    目录 前言 一.独立按键说明 二.示例程序 总结 前言 up主的联系方式: 微信公众号:嵌入式up 大家好!大家点点关注,大家的关注才是我持续更新的动力! ls1x-drv:开发板设备的通用驱动,包含 ...

  7. 龙芯1B:按键外部中断例程

    目录 前言 一.什么是外部中断? 1.外部中断:单片机实时地处理外部事件的一种内部机制. 二.外部中断程序开发步骤 1.步骤 2.函数介绍 GPIO中断API函数介绍: ​编辑 3.外部中断代码 总结 ...

  8. 龙芯1B:timer定时器例程

    目录 前言 一.定时器是什么? 二.定时器编码示例 1.开发步骤 2.代码 总结 前言 up主的联系方式: 微信公众号:嵌入式up 大家好!大家点点关注,大家的关注才是我持续更新的动力! 一.定时器是 ...

  9. 【龙芯1B例程】:串口中断实验

    龙芯(只供学习,不可商用) 文章目录 前言 一.串口中断是什么? 二.开发步骤 1.龙芯1B串口驱动函数(内置) 2.串口中断示例代码 3.代码示例图 总结 前言 文章参考官方各类书籍,以及网络知识, ...

最新文章

  1. linux下安装sbt_如何在Linux上安装SBT
  2. 彩色图像到灰度转换 常见方法汇总与对比
  3. 关于MySQL二次安装问题
  4. mysql 增加建表权限,mysql_基本权限模型建表结构
  5. rpg制作大师2003_RPG制作大师MV 我们一起做游戏(十四)
  6. 天主教、新教、东正教
  7. D3.js制作地图等值线与饼图
  8. C语言链表翻转的三种实现方式(栈、头插法、递归法)
  9. 计算机基础知识2003,计算机基础知识PPT2003练习题及答案(DOC)
  10. Windows7旗舰版安装 Anaconda3 详细图文教程
  11. JS·经典·炫彩菜单(动画效果) for jquery
  12. 七大热门小程序框架横评,谁是性能之王
  13. 代码没问题但运行不出来
  14. Lcd ST7789S寄存器初始化配置
  15. 托运行李安检系统行业研究及十四五规划分析报告
  16. 趣图:代码突然又可以运行了,why?
  17. 2022.3.4总结+45. 跳跃游戏 II 力扣
  18. 【时间序列分析】03. 谱密度
  19. 那些外贸老鸟们都在认真使用的8个实用小工具
  20. vue+vuecli+webpack中使用mockjs模拟后端数据

热门文章

  1. sql字段拼接成新字段
  2. 疲劳驾驶监测方案_疲劳驾驶检测方法
  3. 【2020年10月新书推荐】程序员值得一读的Python新书
  4. linux c 定义结构体,Linux查看C结构体定义
  5. 嘉实基金或将成国内首家发行合规「港元稳定币」的公司
  6. itune备份在哪里_iTune的iPhone备份文件在哪里,以及如何从中获取真实文件?
  7. Nancy使用模型(Using Models)
  8. vue中使用echarts做一个雷达图
  9. ::before / ::after怎么使用hover
  10. AVX 指令集并行技术优化积分计算圆周率 π