瑞萨e2studio(26)----SPI驱动TFT-LCD屏

概述在嵌入式领域,tft-lcd屏是最常用的显示解决方案之一,因为它们提供了丰富的颜色和高分辨率的图像显示能力。ra4m2作为瑞萨的微控制器系列,具备了强大的处理能力和多种通信接口,非常适合于驱动tft-lcd显示屏,该液晶屏st7796或者ili9488驱动芯片,这两个屏幕都是兼容的。
最近在弄st和瑞萨ra的课程,需要样片的可以加群申请:615061293 。
视频教学[https://www.bilibili.com/video/bv1wu4y1w7ig/]
csdn课程csdn课程更加详细。
[https://edu.csdn.net/course/detail/36131]
样品申请[https://www.wjx.top/vm/wbbmsfp.aspx#]
完整代码下载[https://download.csdn.net/download/qq_24312945/88477148]
屏幕接口屏幕接口如下所示,此分辨率的屏幕提供了320个水平像素和480个垂直像素,使其成为中小型应用的理想选择。
接线方式
新建工程
工程模板
保存工程路径
芯片配置本文中使用r7fa4m2ad3cfp来进行演示。
工程模板选择
时钟配置开发板上的外部高速晶振为12m,需要修改xtal为12m.
开始spi配置点击stacks->new stack->connectivity->spi (r_sci_spi)。
spi属性配置
io配置添加res、dc、cs、blk管脚。
头文件定义添加对应头文件。
#include lcd_init.h#include lcd.h#include pic.h回调函数在回调函数中添加发送完毕的判断。
fsp_err_t err = fsp_success;volatile bool g_transfer_complete = false;void sci_spi_callback (spi_callback_args_t * p_args){ if (spi_event_transfer_complete == p_args- >event) { g_transfer_complete = true; }}lcd_init.c这个文件主要是提供tft lcd显示屏(基于ili9488驱动芯片)与ra4m2系列微控制器之间的交互功能。
void lcd_writ_bus(uint8_t dat): 此函数用于将8位数据通过spi发送到lcd。先前使用的是位操作来手动发送数据,但现在改用r_sci_spi_write来处理。
左边为所提供的代码,右边为修改为r_sci_spi_write发送。
lcd.c这段代码主要是为液晶屏(lcd)提供图形和文字显示的功能。
有如下的功能。
lcd_fill 函数:
用于在指定的区域内填充特定的颜色。
lcd_drawpoint 函数:
在液晶屏的指定位置画一个点,并给这个点赋予指定的颜色。
lcd_drawline 函数:
画一条从起始坐标到终止坐标的直线,并给这条线赋予指定的颜色。
lcd_drawrectangle 函数:
画一个矩形框,用户可以指定框的起始坐标、终止坐标和颜色。
draw_circle 函数:
画一个圆,用户可以指定圆心坐标、半径和颜色。
lcd_showchinese 函数:
用于在液晶屏上显示汉字串。根据给定的字号,这个函数会选择对应大小的汉字字库来显示汉字。
lcd_showchinese12x12、lcd_showchinese16x16、lcd_showchinese24x24 函数:
这三个函数是为不同大小的汉字(如12x12、16x16、24x24)提供的显示功能。每个函数都会查找对应的字库来为特定大小的汉字进行显示。
lcd_showchinese32x32:此函数用于显示一个32x32的汉字。它首先查找与输入匹配的汉字,然后显示该汉字。您可以选择叠加或非叠加模式来显示。
lcd_showchar:此函数用于显示一个字符。它根据输入字符的尺寸(如12x6、16x8等)调用相应的字符数组,并在lcd上显示该字符。同样,您可以选择叠加或非叠加模式来显示。
lcd_showstring:此函数用于显示一个字符串。它调用lcd_showchar函数逐字符地显示整个字符串。
mypow:这是一个简单的数学函数,用于计算m的n次方。
lcd_showintnum:此函数用于显示一个整数。它会将整数分解成单独的数字,并使用lcd_showchar函数逐一显示。
lcd_showfloatnum1:此函数用于显示一个浮点数(具有两位小数)。它首先将浮点数转换为整数,然后按上述方式显示该整数,同时在适当的位置插入小数点。
lcd_showpicture:此函数用于显示一张图片。它接受一个图片数组作为输入,该数组包含图片的rgb值,并将图片数据写入lcd。
设置区域颜色设置区域颜色可以使用lcd_fill函数,设置全屏颜色如下所示。
err = r_sci_spi_open(&g_spi0_ctrl, &g_spi0_cfg); assert(fsp_success == err); lcd_init();//lcd初始化 lcd_fill(0,0,320,480,red) ; lcd_fill(0,0,320,480,white) ;显示字符串调用lcd_showchar函数逐字符地显示整个字符串。
lcd_init();//lcd初始化 lcd_fill(0,0,320,480,red) ; lcd_fill(0,0,320,480,white) ; lcd_showstring(0,0,ra4m2,black,red,24,0); lcd_showstring(32,32,hello!,black,white,24,0);显示汉字lcd_showchinese 函数用于在液晶屏上显示汉字串。根据给定的字号,这个函数会选择对应大小的汉字字库来显示汉字
使用取模软件进行汉字字模生成,设置如下所示。
输入需要取模的汉字,这里设置大小为32*32.
将字模复制到例程lcdfont.h文件夹 如下数组内
注:每个字的字模前需要添加这个汉字,并用双引号括起来然后加上逗号!
驱动代码如下所示。
/* user code begin 2 */ lcd_init();//lcd初始化 lcd_fill(0,0,320,480,red) ; lcd_fill(0,0,320,480,white) ; lcd_showstring(0,0,ra4m2,black,red,24,0); lcd_showstring(32,32,hello!,black,white,24,0); lcd_showchinese32x32(0,64,记,red,green,32,0); lcd_showchinese32x32(32,64,帖,red,green,32,0); /* user code end 2 */显示图片lcd_showpicture此函数用于显示一张图片。它接受一个图片数组作为输入,该数组包含图片的rgb值,并将图片数据写入lcd。
打开img2lcd软件,设置如下所示,需要注意的是24位真彩色。
24位真彩色配置如下所示。
配置好分辨率之后点击一下小箭头,最下方会出现输出的实际比例。
然后点击保存,然后将生成的数组复制到到例程pic.h文件内。
驱动代码如下所示。
while (1) { lcd_showpicture(0,0,120,180,gimage_2); r_bsp_softwaredelay(500, bsp_delay_units_milliseconds); lcd_fill(0,0,120,180,white) ; lcd_showpicture(40,60,120,180,gimage_2); r_bsp_softwaredelay(500, bsp_delay_units_milliseconds); lcd_fill(40,60,160,240,white) ; lcd_showpicture(80,120,120,180,gimage_2); r_bsp_softwaredelay(500, bsp_delay_units_milliseconds); lcd_fill(80,120,200,300,white) ; lcd_showpicture(120,180,120,180,gimage_2); r_bsp_softwaredelay(500, bsp_delay_units_milliseconds); lcd_fill(120,180,240,360,white) ; lcd_showpicture(160,240,120,180,gimage_2); r_bsp_softwaredelay(500, bsp_delay_units_milliseconds); lcd_fill(160,240,280,420,white) ; lcd_showpicture(200,300,120,180,gimage_2); r_bsp_softwaredelay(500, bsp_delay_units_milliseconds); lcd_fill(200,300,320,480,white) ; }结果演示


PLC为何学以不能致用
华为Mate30 Pro相机得分更新,拍照得分加1分
一种高速ADC接口电路设计方案
魅族PRO5金色版高清图赏
全数字IGBT后极高频机的设计全过程
瑞萨e2studio(26)----SPI驱动TFT-LCD屏
智能家居市场如何重新构造
数字化发展对LED广告机行业有何影响
罗克韦尔在近日为FactoryTalk InnovationSuite发布一系列增强功能
三星大中华区总裁权贵贤表示今年下半年将会推出3-4款5G手机
家庭影院屏幕选用技巧
智慧配电房数字化升级
决胜2024,欧美、日本电车市场发展放缓,中国车企开始登顶
AR增强现实技术以后会在哪一些领域发展
什么是上拉电阻和下拉电阻_上拉电阻和下拉电阻的区别_上拉电阻的作用原理
回流焊炉温曲线图讲解
华为P10暂时成为安卓机皇,但不要小觑三星S8和小米6
boost升压电路参数选型
微型量子存储元件的量产之路
软件和硬件数据交互接口的的演进