提供树莓派、STM32、Arduino例程
CS||片选
功能引脚 | 描述 |
VCC | 电源正 |
GND | 电源地 |
DIN | 数据输入 |
CLK | 时钟输入 |
DC | 数据/命令信号选择 |
RST | 复位信号 |
模块出厂默认使用4线SPI通信,即BS0默认接0 注:下表为接口连接。
通信协议 | BS | CS | DC | DIN | CLK |
4Wire SPI | 0 | 片选 | DC | MOSI | SCK |
3Wire SPI | 1 | 片选 | GND | MOSI | SCK |
具体硬件配置,如下:
使用4线SPI:即出厂设置,BS接0连接到GND,DIN接控制引脚MOSI, CLK接控制引脚SCK;
使用3线SPI: BS接1连接到VCC,D/C需接地,DIN接控制引脚MOSI, CLK接控制引脚SCK;
SSD1351是一款128RGB * 128 Dot Matrix OLED/PLED 控制器,其内部有一个128*128*18bit的SRAM作为显示缓存区,支持262k和65k两种颜色深度。并支持8bit 8080并行、8bit 6800并行、3wire-SPI和4wire-SPI等通信方式。
本模块选择了4wire-SPI和3wire-SPI作为通信方式,减小模块的面积,同时节省了控制器的IO资源。
在4wire-SPI通信中,先将DC置1或置0,再发送一个或多个字节的数据。
当DC置1时,发送的字节将作为显示数据存入SSD1351的SRAM中,作为显示数据。在发送数据时,可以连续发送多个字节。
当DC置0时,发送的字节将作为控制OLED的命令,发送命令时,一般一次只发送一个字节。
详见SSD1351 Datasheet Figure 8-5。
3wire-SPI和4wire-SPI唯一的区别在于,它去掉了控制发送命令和数据的DC引脚,在每次SPI传输的字节前加一个位来识别该字节是命令还是数据。
故在3wire-SPI中,DC引脚需要接地,此外,每次传输的数据不是8bit,而是9bit。
提供C语言与python例程
- sudo raspi-config
- 选择Interfacing Options -> SPI -> Yes 开启SPI接口
- sudo reboot
请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查
- wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
- tar zxvf bcm2835-1.60.tar.gz
- cd bcm2835-1.60/
- sudo ./configure && sudo make && sudo make check && sudo make install
- # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
- sudo apt-get install wiringpi
- #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
- wget https://project-downloads.drogon.net/wiringpi-latest.deb
- sudo dpkg -i wiringpi-latest.deb
- gpio -v
- # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
- sudo apt-get updata
- sudo apt-get install python-pip
- sudo pip install RPi.GPIO
- sudo pip install spidev
LCD | 树莓派BCM |
VCC | 5V |
GND | GND |
DIN | MOSI |
CLK | SCLK |
CS | CE0 |
DC | 24 |
RST | 25 |
在树莓派终端运行:
- sudo apt-get install p7zip-full
- wget http://www.waveshare.net/w/upload/e/eb/1.5inch_RGB_OLED_Module_Code.7z
- 7z x 1.5inch_RGB_OLED_Module_Code.7z -r -o./1.5inch_RGB_OLED_Module_Code
- sudo chmod 777 -R 1.5inch_RGB_OLED_Module_Code
- cd 1.5inch_RGB_OLED_Module_Code/RaspberryPi/
如果下载很慢,你可以git我们github上的工程:
- sudo git clone https://github.com/waveshare/1.5inch-RGB-OLED-Module
- sudo chmod 777 -R 1.5inch-RGB-OLED-Module/
- cd 1.5inch-RGB-OLED-Module
- cd c
- make clean
- make
- sudo ./main
- cd python
- sudo python main.py
LCD | STM32 |
VCC | 5V |
GND | GND |
DIN | D11(PA7) |
CLK | D13(PA5) |
CS | D10(PB6) |
DC | D7(PA8) |
RST | D8(PA9) |
LCD | Arduino |
VCC | 5V |
GND | GND |
DIN | D11 |
CLK | D13 |
CS | D10 |
DC | D7 |
RST | D8 |