用STM32F429开发板的屏幕做树莓派显示器

作者: PokeBox
上传时间为: 2014-11-23 11:09 PM
2014-11-23
阅读:

之前打算给树莓派加个屏幕,但是又没钱了。手上有个STM32F429的开发板,上面有块屏幕,就想直接用这个开发板来给树莓派当显示器用。

找了一下方法,其实是可行的。

首先翻阅了一下F429的资料手册,可以知道板子上的屏幕是ILI9341的驱动,并且也把屏幕的SPI接口引出了,下面是F429的IO对应屏幕的接口:

F429的IO 	对应屏幕接口
PF7 		[SCK]
PF8 		[MISO]
PF9 		[SDA]
NRST		[RET]
PC2 		[CS]
PD13		[RS]

然后,我在github上找到了树莓派的屏幕驱动,那么我们只需要把驱动下载安装即可。

github上提供了2种安装方法,一个是直接编译进内核,一个是模块化的安装。

我使用的是模块化的安装方法,也就是说,不用的时候,不加载驱动即可,这样的好处是不占用树莓派的SPI接口,想要连接其他设备的时候不需要换内核。

首先下载和安装内核驱动。

<p><p>sudo wget https://raw.github.com/Hexxeh/rpi-update/master/rpi-update -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update</p></p><p><p>sudo REPO_URI=<a href="https://github.com/notro/rpi-firmware">https://github.com/notro/rpi-firmware</a> rpi-update
</p></p>

下载可能需要几分钟的时间,看网速而定。然后第二条命令会自动的安装内核驱动,我们只要耐心等待安装完成即可。整个安装的过程可能需要半个小时甚至更长的时间。

安装完成后,重启一下树莓派即可。然后我们继续操作。首先我们要把F429和树莓派连接。连接的接口如下:

   F429 IO      树莓派IO
## PF7 [SCK] -- SCLK
## PF8 [MISO] - MISO
## PF9 [SDA] -- MOSI
## NRST[RET] -- GPIO25
## PC2 [CS] --- CE0
## PD13[RS] --- GPIO22

左边的是F429开发板的IO,右边是树莓派的IO,把对应的IO连接起来即可。最后还需要2根电源线把树莓派和F429连接起来,给F429供电。

连接好后记得把F429开发板上的JP3跳线帽拔掉,这样才能使用开发板上的屏幕,否则开发板的程序也在运行会造成信号冲突和干扰,屏幕无法正常驱动显示。

硬件全部连接好后,打开树莓派终端,执行下面的命令:

sudo modprobe fbtft_device name=flexfb fps=50 gpios=reset:25,led:18,dc:22 rotate=2 speed=16000000

sudo modprobe flexfb width=320 height=240 buswidth=8 init=-1,0x28,-2,20,-1,0xCF,0x00,0x83,0x30,-1,0xED,0x64,0x03,0x12,0x81,-1,0xE8,0x85,0x01,0x79,-1,0xCB,0x39,0x2c,0x00,0x34,0x02,-1,0xF7,0x20,-1,0xEA,0x00,0x00,-1,0xC0,0x26,-1,0xC1,0x11,-1,0xC5,0x35,0x3E,-1,0xC7,0xBE,-1,0xB1,0x00,0x1B,-1,0xB6,0x0a,0x82,0x27,0x00,-1,0xB7,0x07,-1,0x3A,0x55,-1,0x36,0xF8,-1,0x11,-2,120,-1,0x29,-2,20,-3

如果没有异常的话,你就可以看到F429的屏幕变成了黑色,这就代表屏幕被成功的驱动了。

最后我们可以使用命令来让屏幕显示树莓派的桌面:

su -l root -c "env FRAMEBUFFER=/dev/fb0 startx &"

这里我是设置了显示root用户的桌面,当然你如果习惯使用pi的用户也可以自己修改~

全部评论 ()
条评论
写评论

创建讨论帖子

登录 后参与评论
系统提示