文章目录

  • 1、屏幕驱动原理
  • 2、配置驱动
  • 3、源码

最近在b站上看到有这个,是国外的一个大佬做的,主控用的是f103,然后屏幕用的是ST7735的驱动IC,该大佬还做了播放视频做的真不错,就想着来复现下,不过大佬是用的ARDUINO写的代码,属实是太强了,然后我把他移植到了我的驱动这边来尝试下,效果如下所示:

1、屏幕驱动原理

我们常见的st7735屏幕大概这样的,可能有一点区别,但是区别不大,最起码的引脚都是有的,可以当成同一种使用。

接口说明:

序号 引脚标号 说明
1 VCC 5V/3.3V电源输入
2 GND 接地
3 CS 液晶屏片选信号,低电平使能
4 RESET 液晶屏复位信号,低电平复位
5 A0 液晶屏寄存器/数据选择信号,低电平:寄存器,高电平:数据
6 SDA SPI总线写数据信号
7 SCK SPI总线时钟信号
8 LED 背光控制,高电平点亮,如无需控制则接3.3V常亮

屏幕数据手册太多了,建议需要的自己看: ST7735数据手册

2、配置驱动

首先我们配置SPI,这里可以尽量拉高,我这里应该是拉到最高了,SPI的最大通信速率取决于低速设备的通信速率。

这里我们可以来打开DMA,这样通过发送缓存数组就可以达到一个很快的刷新率:

之后配置一些相关的引脚,主要是复位引脚然后片选还有背光,这里背光是可以调节的,甚至如果不想设置背光,可以直接将他接到3.3v的输出引脚上!

下面就是我们要移植的驱动了,首先还是修改我们的宏定义,使宏定义符合要求

然后在cfg文件中有是否开启DMA的选项,这里我们通过改变宏参数就可以选择是否使用DMA

下面就可以编写屏幕测试函数了,这个测试也是一个github上大佬写的,使用了各种图形,还是很不错的!

最后我们就可以把程序下载到开发板来测试了:

这里我展示下使用字符串来测试,初始化代码如下所示:

将程序下载到开发板,就可以看到屏幕上已经显示出我们的数据了:

下面来试下图片,首先我们需要把图片提取每个像素点的RGB565的数值,这里提供了python的程序,可以参考使用这个程序来设计:

from PIL import Image
import sys
import osif len(sys.argv) != 4:print("Usage: {} <image-file> <width> <height>".format(sys.argv[0]))sys.exit(1)fname = sys.argv[1]W = sys.argv[2]
print("\r\n")
print("<width> " + str(W))H = sys.argv[3]
print("<height> " + str(H))img = Image.open(fname)if img.width != int(W) or img.height != int(H):print("Error: 图片尺寸输入错误 )!!!");sys.exit(2)f = open("picFile.txt", "a")f.write("// size " + str(W) + " x " + str(H) + " \n");
f.write("const unsigned short img[] = { \n ");for y in range(0, img.height):s = ""for x in range(0, img.width):(r, g, b) = img.getpixel((x, y))color565 = ((r & 0xF8) << 8) | ((g & 0xFC) << 3) | ((b & 0xF8) >> 3)color565 = ((color565 & 0xFF00) >> 8) | ((color565 & 0xFF) << 8)s += "0x{:04X},".format(color565)s += "  \n"f.write(s)f.write("}; \r\n")
f.close()
print("\r\n转换完成\r\n")

该程序如果使用的是pycharm这类的ide是无法实用的,需要我们在命令行中进行调用,调用方法如下所示:

最后我们将转换好的数据填充到我们准备好的数组中:

将程序下载到开发板就可以看到现象了:

3、源码

本次文件过大,包括复现的大佬的代码,这里就不贴了,直接放到我的gitee上,需要的可以去查看:源码

st7735屏幕移植-高清图片显示相关推荐

  1. 服务器把高清图片显示成表情图,图片上传被压缩怎么办?教你如何让公号图片变得高清!_【如何,得高,怎么,图片,表情包CC】...

    [图片上传被压缩怎么办?教你如何让公号图片变得高清!] 内容提要:(2017-11-10)今天你斗图了吗? 到处搜集很费时间啊!但又不会ps--怎么办? △没错,就素这个了! 制作详解 这里我们主要分 ...

  2. android大图、高清图片处理

    Android大图.高清图片处理 Android中,系统分配给手机app的内存是有限的,现阶段根据不同的手机分配的最大内存也不一样,少的只有几十M.当我们以Bitmap的形式把高清的大图加载到内存当中 ...

  3. iphonex正面图_iPhoneX高清图片真机-iPhoneX图片大全大图下载-西西软件下载

    iPhoneX图片大全大图是专为大家带来的最新发布的iPhoneX的手机高清图片,这次的iPhoneX采用的是期待已久的全面屏,看起来视觉效果确实非常震撼,而且真机也非常的漂亮,欢迎大家前来下载iPh ...

  4. 高清图片在不同移动端设备上的显示效果

    今天看到一道前端面试题,是别人面试自己很喜欢的前端团队时出的题目:一张高清图片,怎么保证其在不同移动端设备上的显示效果? 看到这个问题,我就一脸懵逼,实际上我连移动端那些像素都搞不清楚,这道题给我的话 ...

  5. ECCV 2020 Oral | 可逆图像缩放:完美恢复降采样后的高清图片

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文介绍的是ECCV 2020 Oral论文<Inverti ...

  6. 11个免费高清图片下载站

    title: 11个免费高清图片下载站 tags: [高清,图片,下载] categories: [高效率生活,技巧] grammar_cjkRuby: true copyright: true 当你 ...

  7. 二十多个免费高清图片素材网站送给你

    用心分享,共同成长 没有什么比你每天进步一点点更重要的了 本文已经收录至我的github,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/arti ...

  8. 免费壁纸背景高清图片素材网站

    看到大家都在问壁纸背景高清图片素材,既要免费又要质量好,数量还要多,小编好不容易挖到了宝藏素材网站哦,不知道爱给网这个网站大家认识不,资源优质数量庞大,使用体验也很好,要是需要的话,赶紧看一看,小编会 ...

  9. PPT如何另存为高清图片

    最近在用PPT做海报时发现,不管是存为 jpg 还是 tif 格式,PPT均无法将海报另存为高清图片,即使在另存为时选择其他的分辨率,最终输出的图片还是96 dpi,即PPT的默认分辨率. 于是搜索了 ...

  10. Invertible Image Rescaling 可逆图像缩放:完美恢复降采样后的高清图片(ECCV 2020 Oral )

    论文地址:https://arxiv.org/pdf/2005.05650.pdf 开源代码:https://github.com/pkuxmq/Invertible-Image-Rescaling( ...

最新文章

  1. 使用druid连接池的超时回收机制排查连接泄露问题
  2. VTK:Video之MPEG2
  3. 进击的Objective-C--------Objective-C基础(-)
  4. 实现tomcat的https单向认证及双向认证
  5. 8VC Venture Cup 2016 - Final Round (Div. 2 Edition) C. XOR Equation 数学
  6. 几个跨平台移动App开发方案框架比较
  7. 持续集成、持续交付、微服务----微服务
  8. XTU1340Wave
  9. java玫瑰花代码_给爱人的玫瑰花表白程序代码–Java版 | 学步园
  10. RMAN-06004 RMAN-20003
  11. Waited too long for library cache load lock
  12. php,tp5关键词,分词模糊查询并根据查询条件排序
  13. 思科交换机路由器 连接配置步骤
  14. Windows桌面应用程序(1-2-4-2nd) 桌面窗口管理器
  15. Java实现项目电影购票系统(swing界面)
  16. 《内网安全攻防:渗透测试实战指南》读书笔记(八):权限维持分析及防御
  17. windows重装系统
  18. 将数字字符串转换为人民币大写,壹、贰、叁、肆、伍、陆、柒、捌、玖、拾
  19. Java基础学习经验分享
  20. CIO应当牢记iPhone的七条安全建议

热门文章

  1. Javacv录制视频
  2. Android 音视频开发学习思路大纲
  3. 学习笔记(3):掌握JQuery视频教程-jquery选择器03
  4. 比较器与滞回比较器的原理及应用
  5. java cms文章管理_孔浩java cms完整视频教程_爱分享666
  6. 研究生做java如何发论文_研究生三年, 我是如何在CSSCI期刊上发表5篇论文,挣得2万元国家奖学金的?...
  7. linux镜像ISO文件下载
  8. java heapdump 分析工具_Heapdump分析软件
  9. 性能测试案例模板 性能测试用例模板 测试案例 性能用例 模板 容我想想之性能测试系列培训...
  10. FlyMcu 串口无法打开 串口被占用