DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V
DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V
- 前言
- IMG2LCD软件生成RGB565格式图片 使用取模软件对图片取模
- 实验结果
- 生成彩色图片
- 生成黑白图片
- 后记
- 源码分享
前言
官方所给的LCD实验《nuclei-board-labs-master\e203_hbirdv2\ddr200t\spi_lcd》只有显示字符的函数,并未提供显示图片的函数,在本人查找资料的过程中,发现了STM32的一些函数正好能用上。这里给出代码。
IMG2LCD软件生成RGB565格式图片 使用取模软件对图片取模
这个软件很简单。要记得每次换完参数要点下==“重新载入”==,再保存。
实验结果
彩图
这里值得注意的是,MCU-FLASH装不下很大的图像,所以需要引入DDR3等外部存储器。详见本文“后记”
黑白图
生成彩色图片
lcd.c加上这个函数
void Draw_Color(uint16_t S_x,uint16_t S_y,const unsigned char *pic)
{uint32_t i=8,len;uint16_t temp,x,y,D_x=0,D_y=0;x=(uint16_t)((pic[2]<<8)+pic[3])-1; //获取图片的宽度y=(uint16_t)((pic[4]<<8)+pic[5])-1; //获取图片的高度len=2*x*y; //获取图片像素点数while(i<(len+8)) //显示所有像素点{temp=(uint16_t) ( (pic[i]<<8) + pic[i+1] ); //image2lcd生成的是8位数组,十六位真彩色图像生成为高8位和低8位,这儿将其转换成16位数据,if(D_x>x) {D_x=0;D_y++;} //逐行显示LCD_Fast_DrawPoint(S_x+D_x,S_y+D_y,temp); //画点,拼凑图像,调用正点原子快速画点函数D_x++;i=i+2;}}
生成黑白图片
lcd.c加上这个函数
void Draw_Black(uint16_t xstr,uint16_t ystr,uint16_t xend,uint16_t yend,uint8_t *pic) //画图
{uint8_t temp,t1;uint16_t x_t=xstr,y_t=ystr;//,x=xstr,y=ystr;uint8_t *pusMsk = pic;//480000 65536for(y_t=ystr;y_t<yend;){temp = *pusMsk;for(t1=0;t1<8;t1++){if(temp&0x80)LCD_Fast_DrawPoint(x_t,y_t, BLACK);//画实心点else LCD_Fast_DrawPoint(x_t,y_t,BACK_COLOR); //画空白点(使用背景色)temp<<=1;x_t++;if(x_t>=xend){x_t=xstr;y_t++;break;}}pusMsk++;}
}
后记
做这个实验后,发现NucleiStudio往板载输入图片实际上是通过ilm或flash模式,其中:
- ilm模式是断电后不保留下次开机就没了,烧录到mcu_
- flash模式是断电后保留,烧录到mcu_flash里
这里有一个问题,NucleiStudio把编译好的c程序还有图片数据,存储到mcu_flash里面,图片的大小往往会超出mcu_flash的容量,会限制读写。这时需要利用板载的RAM资源,这也是为什么需要扩展内存DDR3 SDRAM的原因。MCU_FLASH的型号是GD25Q32CSIG,存储容量 32 Mbit。
源码分享
实验所用所有函数-直接复制即可用
链接:https://pan.baidu.com/s/1CObnOgNIziWXHDPiw0F-Ig?pwd=glri
提取码:glri
--来自百度网盘超级会员V3的分享
DDR200T TFT - LCD 显示屏 显示图片 NucleiStudio 蜂鸟E203 详细教程 RISC-V相关推荐
- 初试树莓派在2.2寸QVGA SPI TFT LCD上显示图片
春节前整理抽屉翻出来一块2.2寸的240x320 SPI的TFT LCD.想起来这是当初做完Arduino搭配176x220的实验(http://blog.csdn.net/ki1381/articl ...
- 【Arduino】TFT LCD显示屏显示gif小电视太空人动图(基于Arduino框架ESP8266/ESP32、TFT_eSPI库、使用python脚本GIF转十六进制文件)
前言 之前使用ESP32 来控制TFT屏幕显示动图时,找到现有的工具,需要先将动图gif格式一帧帧转为jpg格式,再将一帧帧的jgp转为hex十六进制格式,整个过程好麻烦.现用python写了脚本 ...
- TFT LCD显示屏在阳光下可读
显示屏作为公共场所广泛使用的电器,高亮度液晶显示屏越来越被人们所选择. 那么为什么越来越多的人想选择高亮度TFT LCD 显示屏? 阳光下的可读性显示屏使我们即使在阳光直射下也能看到清晰锐利的图像或视 ...
- 哪些原因会导致TFT LCD显示屏偏色?
tft lcd显示屏常常使用的智能产品中,而凡是电子产品在长期使用的过程中就容易出现不同的问题.今天我们就来谈一下,tft lcd显示屏使用久后会发黄的情况,那些原因会导致致TFT LCD显示屏变黄. ...
- Arduino 1.44寸st7735s TFT+SD卡显示图片
[TOC](Arduino 1.44寸st7735s TFT+SD卡显示图片) 硬件 硬件列表 硬件 数量 Arduino UNO 1 1.44寸 128*128 st7735s TFT屏 1 SD卡 ...
- PHP7Grafika,PHP图片处理库Grafika详细教程(3):图像属性处理
该文章是接着上篇文章,<PHP极其强大的图片处理库Grafika详细教程(2):图像特效处理模块>,由于grafika功能太多,所以分开写,其他的点击这里 该文章主要写grafika的图像 ...
- PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理
该文章是接着上篇文章,<PHP极其强大的图片处理库Grafika详细教程(2):图像特效处理模块>,由于grafika功能太多,所以分开写,其他的点击这里 <1.图像基本处理> ...
- PHP极其强大的图片处理库Grafika详细教程(4):图形绘制
该文章是接着上一篇文章:<PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理>,是grafika教程的一个部分. 所有的教程目录 <1.图像基本处理> < ...
- PHP图片处理库Grafika详细教程(4):图形绘制
该文章是接着上篇文章,<PHP极其强大的图片处理库Grafika详细教程(3):图像属性处理>,是grafika教程的一个部分. 所有的教程目录 <1.图像基本处理> < ...
最新文章
- Android <java.lang.ClassNotFoundException:Didn‘t find class ‘XXX‘ on path:DexPathList> 解决
- 一张脑图说清 Nginx 的主流程
- 《剑指offer》第十三题(机器人的运动范围)
- Java日期相关类:Date、SimpleDateFormat和Calendar类常用API代码示例
- Cities(2020昆明C)
- 前端学习(2760):image基本使用
- PHP关闭$_ENV后获取服务器参数的办法
- Uber如何使用Mesos的?答曰:和Cassandra一起用
- 零基础云计算学习路线,到底什么是云计算?
- python编程自学网-python自学网
- JAVA常用加密解密算法Encryption and decryption
- Excel中通过FREQUENCY统计分数段
- 小雷的冰茶几(并查集)
- 基于SSM的植物花草养护交流网站设计
- 谷歌浏览器控制台位置调整
- python打包xp系统_python打包的exe为啥在XP上提示“不是有效的WIN32程序”
- 杀怪物(dfs)题解
- 计算机视觉期刊水平,计算机视觉和模式识别领域的SCI期刊菜鸡一枚,领域,识别,EditSprings,艾德思...
- 记录:捕鱼达人开发笔记
- 电商平台接入第三方支付接口之微信支付接入订单系统