2351|1

248

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

【Luckfox幸狐 RV1106 Linux 开发板】4-SPI测试__驱动RGB_TFT正常显示 [复制链接]

 
本帖最后由 qiao--- 于 2024-2-11 13:51 编辑

前言:

开始我是打算自己写这个屏幕的驱动的,但是写到了一半过年了,然后还是决定配置一下这个屏幕的驱动吧。毕竟现在的Linux系统的绝大数驱动都可以用make menuconfig配置系统驱动+编写设备树的方式来驱动设备,可以大大减少我们的开发时间。

 

1.配置RGN_TFT的Linux驱动

我们进入我们之前拉取好的SDK目录下LuckFox_RV1106/luckfox-pico/sysdrv/source,这个目录中装着我们的所有源码,包括内核和buildroot。

 

我们进入kernel目录下将出厂的config文件拷贝到当前目录,这样减少了一些内核的基础配置。

cp ./arch/arm/configs/luckfox_rv1106_linux_defconfig .config

然后我们输入下面的命令进入图形化配置界面

make ARCH=arm menuconfig

然后我们再图形化配置界面输入/搜索我们想要的驱动st7735的驱动

 

我们输入1跳转到屏幕驱动界面,如下图所示

 

我们输入Y选中这个驱动就行了,我们接着退出图形化界面当提示到是否保存的时候保存一下就行了。

然后我们将当前界面的.config文件拷贝覆盖至原来的配置文件中。

cp .config ./arch/arm/configs/luckfox_rv1106_linux_defconfig

 

2.编写设备树

设备树也是编译进源码内核当中的,所以我们把设备树也写好然后一起编译进内核。

设备树在内核源码的/kernel/arch/arm/boot/dts目录下。找到rv1106g-luckfox-pico-pro-max.dts文件

这里打算用PA2作为屏幕的dc引脚,用PA3作为屏幕的reset引脚,用spi0驱动我们的屏幕

我们先把PA2和PA3的引脚节点写出来如下图所示

 

紧接着我们在spi0节点下写出我们的st7735节点,如下图所示

 

这样我们把st7735的设备描绘出来了。但是这样肯定还是驱动不了的,因为我们的PA2和PA3引脚默认是被用到了SDMMC,我们需要把相关的代码注释掉,如下图所示:

 

这样我们的所有代码工做就完成了。

我们进入SDK 的主目录下输入下面的命令进行编译内核

./build.sh kernel

编译的结果会被输出到output/image文件夹下面

 

我们用这个替换掉之前的 boot.img文件,然后用我第二期的烧录方法烧录进板子就行了。

 

3.实验效果

我们给板子上电连接串口后可以看到内核启动过程,下面是我们屏幕的适配信息

 我们登录到系统中进入/dev目录下,可以看到fb0设备

 

我们编写一个简单的用例测试下板子的颜色显示

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdint.h>
#include <sys/mman.h>

uint16_t color = 0xff00;
uint16_t color2 = 0xff0;
uint16_t color3 = 0xff;
#define mmap_size 128*160*2

int main()
{
	int fd = open("/dev/fb0", O_RDWR);
	printf("fd=%d\r\n", fd);
	uint16_t *fb0 = mmap(NULL, mmap_size, PROT_WRITE | PROT_READ, MAP_SHARED, fd, 0);

	printf("fb0=%x\r\n", fb0);
	perror("errno=");

	for (int i = 0; i < (mmap_size / 2); i++)
		fb0[i] = color;
		sleep(1);
	for (int i = (mmap_size / 2/2); i < (mmap_size / 2); i++)
		fb0[i] = color2;
		sleep(1);
	for (int i = 0; i < (mmap_size / 2); i++)
		fb0[i] = color3;

	close(fd);
	return 0;
}

运行效果:

IMG_8468

总结:Luckfox幸狐 RV1106 Linux 开发板spi能够很好驱动ST7735屏幕,颜色测试正常。下期我会给开发板移植qt,使其能够进行对GUI的开发。

最新回复

好吧,期待下面的给开发板移植qt,使其能够进行对GUI的开发,,,   详情 回复 发表于 2024-2-13 10:26

赞赏

1

查看全部赞赏

点赞(2) 关注(1)
 
 

回复
举报

6828

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

好吧,期待下面的给开发板移植qt,使其能够进行对GUI的开发,,,

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表