由于墨水屏只需要显示,这里将从机发,主机收的数据线(MISO)隐藏。
CS:从机片选,当CS为低电平的时候,芯片使能
DC:数据/命令控制引脚,当DC=0时写入命令;DC=1时写入数据
SCLK: SPI通信时钟
SDIN:SPI通信主机发送,从机接收
时序:CPHL=0, CPOL=0 (SPI0)
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解
对于黑白图片,我们可以规定,如果如果是黑色我们定义成0,如果是白色就定义成1,那么有了表示颜色的方式:
白色:□,对应1
黑色:■:对应0
对于计算机而言,它的数据存储方式是高位在前,低位在后,且一个字节只有8个位,因此会有一点改变:
这样只需要2个字节即可表示16个像素点了。
提供BCM2835、WiringPi、文件IO、RPI(Python)库例程
连接树莓派的时候,如果是驱动板带有40pin排座的,可以直接插到树莓派的40PIN排针上去,注意对好引脚。如果是选择用8PIN排线连接的话,请参考下方的引脚对应表格
e-Paper | Raspberry Pi | |
BCM2835编码 | Board物理引脚序号 | |
VCC | 3.3V | 3.3V |
GND | GND | GND |
SDA | SDA.1 | 3 |
SCL | SCL.1 | 5 |
RST | 4 | 7 |
BUSY | 17 | 11 |
sudo raspi-config 选择Interfacing Options -> I2C -> Yes 开启I2C接口
sudo reboot
#打开树莓派终端,并运行以下指令 wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ 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版本,如果没有出现说明安装出错 #Bullseye分支系统使用如下命令: git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build gpio -v # 运行gpio -v会出现2.60版本,如果没有出现说明安装出错
#python2 sudo apt-get update sudo apt-get install python-pip sudo apt-get install python-pil sudo apt-get install python-numpy sudo apt-get install python-smbus sudo pip install RPi.GPIO #python3 sudo apt-get update sudo apt-get install python3-pip sudo apt-get install python3-pil sudo apt-get install python3-numpy sudo apt-get install python3-smbus sudo pip3 install RPi.GPIO
打开树莓派终端,执行:
方法一:从我们官网下载
sudo apt-get install p7zip-full wget https://www.waveshare.net/w/upload/f/f6/E-Paper-Segment-Code.zip 7z x E-Paper-Segment-Code.zip -O./e-Paper cd e-Paper/RaspberryPi/
以下命令请在RaspberryPi_JetsonNano下执行,否则不在索引不到目录;
cd c sudo nano examples/main.c
如果你使用的是1.9inch Segment e-paper,那么就去掉EPD_1IN9_test()函数前面的//,然后按ctrl+c,然后按Y键并回车保存并退出,如图所示:(图片可能更新不及时,具体以例程为准)
可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
EPD_1in9_test():对应1.9inch Segment e-paper测试程序;
返回c目录下,运行以下指令 make clean make sudo ./main
cd python ls -al
可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
1inch9_E-paper目录对应1.9inch Segment e-paper测试程序;
# python2 cd 1in9_E-paper sudo python main.py # python3 cd 1in9_E-paper sudo python3 main.py
我们提供的例程是基于STM32F103RBT6的,提供的连接方式也是对应的STM32F103RBT6的引脚,如果有需要移植程序,请按实际引脚连接
e-Paper | STM32 |
VCC | 3.3V |
GND | GND |
SDA | PB9/D14 |
SCL | PB8/D15 |
RST | PA9/D8 |
BUSY | PA8/D7 |
例程是基于HAL库进行开发的。 下载程序,找到STM32程序文件目录,打开STM32\STM32-F103ZET6\MDK-ARM目录下的epd-demo.uvprojx,即可看到程序。
打开main.c,可以看到所有的测试程序,把对应的屏幕的测试程序前面的注释去掉,重新编译下载即可。
可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
EPD_1in9_test():对应1.9inch Segment e-paper测试程序;
例程均在Arduino uno上进行了测试,如果需要是其他型号的Arduino需要自己确定连接的管脚是否正确。
e-Paper | Arduino UNO | Mega2560 |
Vcc | 5V | 5V |
GND | GND | GND |
SDA | SDA | SDA |
SCL | SCL | SCL |
RST | D8 | D8 |
BUSY | D7 | D7 |
在产品百科界面下载程序,然后解压。Arduino程序位于 ~/Arduino/…
可以查看到所有的屏幕尺寸的测试程序,按照尺寸分类:
1.9寸:
EPD_1in9:对应1.9inch segment e-paper测试程序;
比如1.54inch e-Paper Module. 打开epd1in54文件夹,并运行epd1in54.ino文件。
打开程序,选择开发板型号Arduino UNO
选择对应COM口
然后点击编译并下载即可