1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
手上刚好有 2.8 寸的 TFT LCD,买的萤火虫的 RK3288 没有一些,过程就想物尽其用,让 LCD 显示系统信息如 IP 占用大小。
下面记录折腾的 1、一下,杜邦线连接: RK3288 天线标号 LCD ili9341 标识号 42 VCC VCC 41 接地 接地 36 SPI0_CSN0 CS 17 GPIO7_A3 重置 15 GPIO7_B1 直流 37 SPI0_TXD SDI(莫西) 35 SPI0_CLK SCK 32 VCCIO_3.3V 引领 38 SPI0_RXD SDO(味噌) 2、 目前最新的4.1x内核平均包含,设备常见的SPI显示屏幕(fbtft),我们所用的内核在设备中树中偏树不过,同时在 fbtft增加当前添加的情况下。仍保留在存放在 中的驱动程序/staging 目录中 配置内核,加入fbtft1菜单配置内核,加入fbtft1菜单配置内核。fbt支持更多型号的SPI转正使用这里的列表屏幕。 Device Drivers ---》 [] Staging drivers ---》 《》 Support for small TFT LCD display modules ---》 《》 FB driver for the ILI9341 LCD Controller 《》 Generic FB driver for TFT LCD显示 修改设备树注册ili9341 设备树有修改包含和覆盖特性,所以我们可以在不默认配置文件的情况下,添加我们的板子的。 新建 arch/arm/boot/dts/sun8i-v3s-licheepi- zero-pitft.dts里面 必须加入以下内容,一个就是 可以删除 原来的简单节点(uboot里有使b的操作,删除而不是禁用才行) 二就是增加这个ili9341使用加载在spi00上。注意这里, uboot另外会删除后使用RGB的显示驱动,只是内核会spi 如果需要完全去除RGB上的显示,需要在。 &spi0 { status = “okay”; ili9341@0 { 兼容 = “ilitek,ili9341”; 注册 = 《0》; spi-max-频率=《50000000》; 旋转 = 《270》; bgr; fps = 《30》; 总线宽度 = 《8》; 重置-gpios = 《&gpio7 3 GPIO_ACTIVE_LOW》; dc-gpios = 《&gpio7 9 GPIO_ACTIVE_LOW》; 调试 = 《0》; }; }; 。/建造。 dmesg | grep fb 查看相关的启动信息 3、 通用测试的fb 操作 #include 《unistd.h》 #include 《stdio.h》 #include 《fcntl.h》 #include 《linux/fb.h》 #include 《sys/mman .h》 #include 《stdlib.h》 #include 《string.h》 #define RED 0xF800 #define YELLOW 0xFFE0 #define BLUE 0x001F #define WHITE 0xFFFF #define BLACK 0x0000 void fill_color16(short *fb_addr, short bit_map, int psize) { 诠释我; for(i=0; i《psize; i++) { *fb_addr = bit_map; fb_addr++; } } int main () { int fp=0; 结构 fb_var_screeninfo vinfo; 结构 fb_fix_screeninfo finfo; 长屏幕尺寸=0; 字符 *fbp = NULL,*test_fbp=NULL; 整数 x = 0, y = 0; 长位置 = 0; 诠释我; 整数 = 5; int pix_size=0; fp = open(“/dev/graphics/fb0”, O_RDWR); if(fp 《 0) { printf(“错误:无法打开帧缓冲设备/n”); 退出(1); } if(ioctl(fp, FBIOGET_FSCREENINFO, &finfo)){ printf(“读取固定信息时出错/n”); 退出(2); } if(ioctl(fp, FBIOGET_VSCREENINFO, &vinfo)){ printf(“读取变量信息错误/n”); 退出(3); } 屏幕尺寸 = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8; printf(“phy mem = 0x%x, 总大小 = %d(byte)n”, finfo.smem_start, finfo.smem_len); printf(“xres = %d, yres = %d, bits_per_pixel = %dn”, vinfo.xres, vinfo.yres, vinfo.bits_per_pixel); printf(“所以 screensize = %d(byte), using %d framen”, screensize, finfo.smem_len/screensize); printf(“vinfo.xoffset = %d, vinfo.yoffset = %dn”, vinfo.xoffset, vinfo.yoffset); printf(“vinfo.vmode 是 :%dn”, vinfo.vmode); printf(“finfo.ypanstep 是 :%dn”, finfo.ypanstep); printf(“vinfo. printf(”vinfo.red.length=0x%xn“, vinfo.red.length); printf(”vinfo.green.offset=0x%xn“, vinfo.green.offset); printf(”vinfo.green.length=0x%xn“, vinfo.green.length); printf(”vinfo.blue.offset=0x%xn“, vinfo.blue.offset); printf(”vinfo.blue.length=0x%xn“, vinfo.blue.length); printf(”vinfo.transp.offset=0x%xn“, vinfo.transp.offset); printf(”vinfo.transp.length=0x%xn“, vinfo.transp.length); fbp =(char *)mmap(0, screensize, PROT_READ | PROT_WRITE, MAP_SHARED, fp,0); if ((int)fbp == -1) { printf (”Error: failed to map framebuffer device to memory./n“); 出口(4); pix_size = vinfo.xres * vinfo.yres; //使用第一帧,为FBIPAN_DISPLAY参数 *当需要调用FBIO_DISPLAY时,如果要提示驱动到帧第二帧,使用第二帧PAN_DISPLAY参数,下面两个vbuffer .*xoffset = 0; vinfo.yoffset = vinfo.yres; */ vinfo.xoffset = 0; vinfo.yoffset = 0; /* 显示颜色循环 */ while(num--) { printf(”ndrawing YELLOW.。..。.n“); fill_color16((short *)fbp, 黄色, pix_size); //ioctl(fp, FBIOPAN_DISPLAY, &vinfo); 睡眠(3); printf(”n绘制蓝色。..。..n“); fill_color16((short *)fbp, 蓝色, pix_size); //ioctl(fp, FBIOPAN_DISPLAY, &vinfo); 睡眠(3); printf(”n绘制红色。..。..n“); fill_color16((short *)fbp, RED, pix_size); //ioctl(fp, FBIOPAN_DISPLAY, &vinfo); 睡眠(3); } #if 1 /*这是你想画的点的坐标位置,(0,0)点在左上角*/ x = 10; y = 10; 位置 = x * (vinfo.bits_per_pixel / 8) + y * finfo.line_length; test_fbp = fbp + 位置; printf(”画线。..。..。n“); for(i = 0; i 《 (vinfo.xres - x); i++) *test_fbp++ = i+30; //ioctl(fp, FBIOPAN_DISPLAY, &vinfo); #endif munmap(fbp,屏幕大小);/* 解除映射*/ close (fp); 返回0; } 显示自驱动、红效果应用:实现黄、蓝画线。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
基于米尔瑞芯微RK3576核心板/开发板的人脸疲劳检测应用方案
1162 浏览 0 评论
1330 浏览 1 评论
1015 浏览 1 评论
2345 浏览 1 评论
3671 浏览 1 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 01:44 , Processed in 0.533048 second(s), Total 70, Slave 54 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号