基于树莓派raspberry: 移植 2.4寸TFT显示屏以及源码分析
有了树莓派,但是没有hdmi显示器,这是个蛋疼的事,但是树莓派就是树莓派,他的GPIO管脚就是我们发挥想象力的地方.可以通过它的GPIO管脚来驱动一个显示屏.GOOGLE了一下,这个项目有个老外做好了,而且提供了patch文件,很容易就能移植到内核里面去.这里我就在这里记
有了树莓派,但是没有hdmi显示器,这是个蛋疼的事,但是树莓派就是树莓派,他的GPIO管脚就是我们发挥想象力的地方.可以通过它的GPIO管脚来驱动一个显示屏.GOOGLE了一下,这个项目有个老外做好了,而且提供了patch文件,很容易就能移植到内核里面去.这里我就在这里记录一下移植这个TFT驱动的过程,然后试着分析这个老外提供的PATCH文件,希望能从中提高自己的能力,也能够熟悉一下内核的移植.
环境: ubuntu 13.10 (交叉编译按前面的文章设置)
TFT : 2.4寸 12864接口 ILI9325主控 (当时叉宝买来给AVR用的)
http://blog.csdn.net/embbnux/article/details/17394793
博主最近自建了博客,以后会更多的用那个了,欢迎关注访问,里面也有很多有用资源:
http://www.embbnux.com/
参考文章:
http://spritesmods.com/?art=rpi_arcade&page=2
http://www.blogjava.net/baicker/archive/2012/12/18/392829.html
首先上张图:
一 首先是接线
用的是P1口:
TFT与P1连线:
这个上面的VCC接的是3.3v,因为我的屏幕接口是5v,所以我给改成5v了.
二 添加TFT驱动到内核
编译内核的环境,就按之前的文章设置,这里不再复述.
用的是spritesmods.com/?art=rpi_arcade&page=2提供的diff文件
原下载链接: ili9325_gpio_driver_rpi.diff
也可以到我的资源下载:
http://download.csdn.net/detail/canyue102/6735059
这个补丁是基于3.6内核的,不同版本的内核可能不一样,自己改一下就好了.
首先把 该diff文件放到内核根目录下,终端进去该目录:
patch -p1 <br> 然后TFT内核源码就被添加到内核去了. <br> <p></p> <pre class="brush:php;toolbar:false">make menuconfig
make
三 测试
进入ssh进入树莓派
ls /dev/fb*
可以看到有fb0 和 fb1, fb1 就是我的TFT.
测试:
cat /dev/urandom > /dev/fb1
如果屏幕出现花屏那就是成功了.
那要如何树莓派默认显示在tft上:
在make menuconfig里面把刚才说到的BCM2708 framebuffer support取消掉就可以了,不过就不支持HDMI了
三 源文件分析
查看该diff文件可以看出作者对内核做了四处改动
1 ) 在 arch/arm/mach-bcm2708/bcm2708.c文件中添加了ILI9325 平台定义
static struct platform_device bcm2708_ili9325 = { .name = "ili9325", .id = 0, }; /*************************/ bcm_register_device(&bcm2708_ili9325);
2 ) 修改了 drivers/video/Kconfig 文件,添加:
config FB_ILI9325 tristate "ILI9325 connected to Raspberry Pi GPIO support" depends on FB select FB_SYS_FILLRECT select FB_SYS_COPYAREA select FB_SYS_IMAGEBLIT select FB_SYS_FOPS select FB_DEFERRED_IO help This driver implements a framebuffer on an LCD controlled by a ILI9325 (or compatible) controller connected to the GPIO of the Raspberry Pi.
只有在Kconfig 中声明定义该模块,在make menuconfig 中才看得到ILI9325选项
3 ) 在 drivers/video/Makefile 添加:
obj-$(CONFIG_FB_ILI9325) += ili9325.o
只有加了这句话,在make menuconfig选中该模块后,make时,该模块才会被编译
4) 在drivers/video/目录下新建了 ili9325.c文件
代码比较长,这里只看核心代码:
static void ili9325_copy(struct ili9325 *item, unsigned int index) { unsigned short x; unsigned short y; unsigned short *buffer; unsigned short *oldbuffer; unsigned int len; unsigned int count; int sendNewPos=1; x = item->pages[index].x; y = item->pages[index].y; buffer = item->pages[index].buffer; oldbuffer = item->pages[index].oldbuffer; len = item->pages[index].len; dev_dbg(item->dev, "%s: page[%u]: x=%3hu y=%3hu buffer=0x%p len=%3hu\n", __func__, index, x, y, buffer, len); //Only update changed pixels in the page. for (count = 0; count =item->info->var.xres) { y++; x=0; } } }
前面还有一系列定义命令和初始化的函数,主要是得符合ILI9325的时序.和单片机上使用该TFT一样,这里的这个函数,主要用来显示,操作TFT上的每一个像素点.
四 有了显示屏那就做个摄像头显示的小项目
我正好有一个USB接口的UVC驱动的摄像头,树莓派兼容的,其他驱动芯片的驱动只要在make menuconfig里面找到相应选项就可以了.
插上usb摄像头,可以看到/dev下多了video0文件,这个就是摄像头了.
装个mplayer:
sudo apt-get install mplayer
然后用mplayer 播放该摄像头
在tft上用鼠标点击终端图标,输入命令:
mplayer tv:// -tv driver=v4l2:width=320:height=240:device=/dev/video0
然后就在tft上显示摄像头的图像:
就到这里吧,有空再玩.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Windows 11에서 검색 필드를 클릭하면 검색 인터페이스가 자동으로 확장됩니다. 왼쪽에는 최근 프로그램 목록이 표시되고 오른쪽에는 웹 콘텐츠가 표시됩니다. Microsoft는 여기에 뉴스와 인기 콘텐츠를 표시합니다. 오늘의 확인에서는 Bing의 새로운 DALL-E3 이미지 생성 기능, "Bing과 함께 드래곤 채팅" 제안, 드래곤에 대한 추가 정보, 웹 섹션의 주요 뉴스, 게임 추천 및 인기 검색 섹션을 홍보합니다. 전체 항목 목록은 컴퓨터에서의 활동과 별개입니다. 일부 사용자는 뉴스를 볼 수 있는 기능을 높이 평가할 수도 있지만 이 모든 것은 다른 곳에서도 풍부하게 제공됩니다. 다른 사람들은 이를 직간접적으로 판촉이나 광고로 분류할 수도 있습니다. Microsoft는 자체 콘텐츠를 홍보하기 위해 인터페이스를 사용합니다.

iOS 17에서 Apple은 iPhone을 가로 방향으로 충전하도록 설계된 새로운 디스플레이 환경인 대기 모드를 선보입니다. 이 위치에서 iPhone은 일련의 전체 화면 위젯을 표시하여 유용한 홈 허브로 전환할 수 있습니다. 대기 모드는 iOS 17을 실행하는 iPhone을 충전기에 수평으로 올려놓으면 자동으로 활성화됩니다. 시간, 날씨, 달력, 음악 컨트롤, 사진 등을 볼 수 있습니다. 사용 가능한 대기 옵션을 왼쪽이나 오른쪽으로 스와이프한 다음 길게 누르거나 위/아래로 스와이프하여 사용자 정의할 수 있습니다. 예를 들어 아날로그 보기, 디지털 보기, 버블폰트, 일광 보기 중에서 선택할 수 있는데, 시간이 지남에 따라 배경색이 변합니다. 몇 가지 옵션이 있습니다.

Microsoft의 Windows 11 운영 체제는 알림 시스템을 사용하여 주기적으로 제안 사항을 컴퓨터에 팝업으로 표시할 수 있습니다. 원래 사용자에게 Windows 11 워크플로 개선을 위한 팁과 제안을 제공하기 위해 설계된 제안 시스템은 Microsoft 서비스 및 제품을 홍보하기 위한 광고 시스템으로 거의 완전히 변형되었습니다. 제안 팝업은 사용자에게 Microsoft 365 구독을 광고하거나 Android 휴대폰을 장치에 연결하도록 제안하거나 백업 솔루션을 설정할 수 있습니다. 이러한 팝업이 귀찮다면 시스템을 조정하여 팝업을 완전히 비활성화할 수 있습니다. 다음 가이드에서는 Microsoft의 Windows 11 운영 체제를 실행하는 장치에서 팝업을 비활성화하는 방법에 대한 권장 사항을 제공합니다.

데스크탑 레이아웃이 잠겨 있으면 어떻게 됩니까? 컴퓨터를 사용할 때 데스크탑 레이아웃이 잠기는 상황이 발생할 수 있습니다. 이 문제는 데스크탑 아이콘의 위치를 자유롭게 조정하거나 데스크탑 배경을 변경할 수 없음을 의미합니다. 그렇다면 데스크탑 레이아웃이 잠겨 있다는 메시지가 나타나면 정확히 무슨 일이 일어나고 있는 걸까요? 1. 데스크탑 레이아웃 및 잠금 기능 이해 먼저 데스크탑 레이아웃과 데스크탑 잠금의 두 가지 개념을 이해해야 합니다. 데스크탑 레이아웃이란 바로가기, 폴더, 위젯 등 데스크탑의 다양한 요소를 배열하는 것을 말합니다. 우리는 자유로울 수 있어

Windows 11에서 실시간 자막을 즉시 켜는 방법 1. 키보드에서 Ctrl+L을 누릅니다. 2. 동의를 클릭합니다. 3. 영어(미국)로 자막을 추가할 준비가 되었다는 팝업이 나타납니다(기본 언어에 따라 다름) 4. 추가로, 톱니바퀴 버튼을 클릭하면 욕설을 필터링할 수 있나요? 선호? 필터링 욕 관련 기사 Windows Server에서 활성화 오류 코드 0xc004f069를 수정하는 방법 Windows의 활성화 프로세스가 갑자기 바뀌어 이 오류 코드 0xc004f069가 포함된 오류 메시지를 표시하는 경우가 있습니다. 활성화 프로세스가 온라인으로 진행되더라도 Windows Server를 실행하는 일부 이전 시스템에서 이 문제가 발생할 수 있습니다. 이러한 예비 점검을 통과하고, 점검에 통과하지 못한 경우

원격 데스크톱 연결을 사용하는 사용자가 많습니다. 사용 시 상대방의 작업 표시줄이 표시되지 않는 등 몇 가지 사소한 문제가 발생합니다. 실제로는 상대방의 설정 문제일 가능성이 높습니다. 솔루션. 원격 데스크톱 연결 중에 상대방의 작업 표시줄을 표시하는 방법: 1. 먼저 "설정"을 클릭합니다. 2. 그런 다음 "개인 설정"을 엽니다. 3. 그런 다음 왼쪽에서 "작업 표시줄"을 선택합니다. 4. 그림에서 작업 표시줄 숨기기 옵션을 끕니다.

Linux 시스템에서는 pwd 명령을 사용하여 현재 경로를 표시할 수 있습니다. pwd 명령은 PrintWorkingDirectory의 약어로 현재 작업 디렉터리의 경로를 표시하는 데 사용됩니다. 현재 경로를 표시하려면 터미널에 다음 명령을 입력하십시오. pwd 이 명령을 실행하면 터미널에 /home/user/Documents와 같은 현재 작업 디렉터리의 전체 경로가 표시됩니다. 또한 몇 가지 다른 옵션을 사용하여 pwd 명령의 기능을 향상할 수 있습니다. 예를 들어 -P 옵션은 다음을 표시할 수 있습니다.

WIFI 비밀번호는 자주 입력할 필요가 없기 때문에 잊어버리는 것이 일반적입니다. 오늘은 3초 안에 완료할 수 있는 가장 간단한 WIFI 비밀번호 찾는 방법을 알려드리겠습니다. WIFI 비밀번호를 확인하려면 WeChat을 사용하여 스캔하세요. 이 방법의 전제는 WIFI에 연결할 수 있는 휴대폰이 있어야 한다는 것입니다. 자, 튜토리얼을 시작해 보겠습니다. 1단계. 전화기를 입력하고 전화기 상단을 아래로 당겨서 상태 표시줄과 WIFI 아이콘을 불러옵니다. 2단계. WIFI 아이콘을 길게 눌러 WLAN 설정으로 들어갑니다. WIFI 아이콘을 누릅니다. 3단계. 연결됨을 클릭하고 집의 WIFI 이름을 입력하고 비밀번호 공유를 클릭하면 QR 코드가 나타납니다. WIFI 비밀번호 공유 4단계, 스크린샷을 찍어 이 QR 코드를 저장합니다. , 바탕 화면의 WeChat 아이콘을 길게 누르고 스캔을 클릭하세요.
