之前写过一篇树莓派使用12864接口的2.3寸显示屏的文章,当时用的是并口,占用了太多的gpio资源,于是考虑使用spi接口的显示屏,最近的项目正好用到了spi接口的oled的显示屏,于是考虑把它用到树莓派上,先介绍下这款屏幕:0.96寸的oled屏,spi接口ssd1306主控芯片,在很多单片机上也可以用,它的优点是低功耗,以及它的分辨率很高,很难想象0.96寸上面有128*64的分辨率,而且0.96寸正好就是智能手表的尺寸啊,哈哈。本文使用python和c语言来完成功能。 个人原创,版权所有,转载请注明出处,并保留原文链接: http://www./2014/08/10/raspberry_use_spi_oled_screen_python_c/ 一 首先介绍使用python来驱动这个spi接口的oled (1) oled与树莓派连线 之前也介绍过使用python来操作树莓派的gpio口了,这回也一样不过是这次操作的是spi接口。 树莓派自带的26个排针接口里面就有一组spi接口:GPIO9(MISO) GPIO10(MOSI) GPIO11(SCL) 然后看一下我使用的oled的接口: 分别是GND VCC D0 D1 RST DC CS 各个口的功能与树莓派的io口连线分别如下: GND接树莓派的GND, VCC接树莓派的3v3 POWER口,就是电源口,不要接到5V CS是spi的片选口,可以多组spi同时使用,这里接树莓派的GPIO8(CE0)口,第24个管脚 DC口是数据与命令选择口,这里接到第13管脚,对于R1版本的树莓派就是GPIO21,我的是R2版本的,对应的是GPIO27 RST是复位口,这里接到GPIO17也就是11管脚 D1(MOSI)口,接到树莓派的GPIO10(MOSI)口,也就是21管脚 D0(SCLK)口,接到树莓派的GPIO11(SCLK)口,也就是23管脚 (2) 打开树莓派的spi口 树莓派默认的spi和i2c口都是被禁用的,使用之前必须先打开 首先是ssh登陆到树莓派上:
保存后重启树莓派,sudo reboot,这样就会打开树莓派的spi口,具体你可以在/dev目录下看到两个文件:spidev0.0 spidev0.1,对应于gpio口上的spi口,0和1表示片选管脚ce0和ce1 (3) 使用python开始驱动spi口的oled 还是用ssh登陆到树莓派上:
下面就可以使用python来驱动这个oled了: 新建个python文件:spioled.py
运行该程序,sudo python spioled.py 就会发现显示屏开始有显示了: 二 使用c语言来驱动这个spi接口的oled 树莓派是支持使用c语言来操作底层的gpio的,spi也可以,这里介绍使用c来使这个oled屏显示: 与树莓派的连线和上面的一样,这里就不介绍了.一样要打开spi口才可以使用 直接ssh登陆到树莓派 :
编译该c语言包
测试:
没遇到什么问题的话,这里应该可以显示了,会有一段动画: 就介绍到这里吧. 参考程序和文章: https://learn./ssd1306-oled-displays-with-raspberry-pi-and-beaglebone-black/ http://mrdevnotes./2013/03/01/adafruit-oled-with-the-raspberry-pi/ |
|