提供树莓派和Jetson nano示例程序
功能引脚 | 树莓派接口(BCM) | 描述 |
KEY1 | P21 | 按键1GPIO |
KEY2 | P20 | 按键2GPIO |
KEY3 | P16 | 按键3GPIO |
摇杆UP | P6 | 摇杆上 |
摇杆Down | P19 | 摇杆下 |
摇杆Left | P5 | 摇杆左 |
摇杆Right | P26 | 摇杆右 |
摇杆Press | P13 | 摇杆按下 |
SCLK | P11/SCLK | SPI时钟线 |
MOSI | P10/MOSI | SPI数据线 |
SCL | P3/SCL1 | I2C时钟线 |
SDA | P2/SDA1 | I2C数据线 |
DC | P24 | 数据/命令选择 |
CS | P8/CE0 | 片选 |
RST | P25 | 复位 |
OLED模块提供三种驱动接口:分别为3-wire SPI、4-wire SPI 和I2C接口,模块背面有六个可选择焊接的电阻, 通过电子的选择来选择相应的通信方式, 如图:
模块出厂默认使用4线SPI通信模式, 即BS0,BS1,DC,CS,CLK,DIN默认接0(1和0不全代表电平,只是电阻接上或者接下的焊接方式,具体硬件链接见下表):
注:上图为硬件上的焊接, 下表为实际的硬件连接
通信方式 | BS1/BS0 | CS | DC | DIN | CLK |
3-wire SPI | 0/1 | CS | 1 | MOSI | SCLK |
4-wire SPI | 0/0 | CS | DC | MOSI | SCLK |
I2C | 1/0 | 0 | 1 | SDA | SCL |
具体硬件配置,如下:
即出厂程序设置:BS0与BS1接0连接到地,CS接0连接到树莓派CE0(使能管脚),D/C接0连接到树莓派的P24(数据/命令管脚),DIN接0连接至树莓派MOSI,CLK接0连接至树莓派SCLK;
BS0接1连接到VCC,BS1接0连接至GND,CS接0连接至树莓派CE0,D/C接1连接值GND,DIN接0连接至树莓派MOSI,CLK接0来连接至树莓派SCLK;
BS0接0连接至GND,BS1接1连接至VCC(3.3V),CS接1连接GND,D/C接1来连接至GND,DIN接1连接至树莓派SDA,CLK接1连接至树莓派SCL;使用I2C时:DC的高低状态可以控制从设备的地址,这里接到了GND,那么I2C的7位地址为:0x3C
提供C语言与python例程
- sudo raspi-config
- 选择Interfacing Options -> SPI -> Yes 开启SPI接口
- sudo reboot
请确保SPI没有被其他的设备占用,你可以在/boot/config.txt中间检查
在终端执行:
- sudo raspi-config
- 选择 Interfacing Options -> I2C ->yes 启动 i2C 内核驱动
- sudo reboot
- 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 update
- sudo apt-get install python-pip
- sudo pip install RPi.GPIO
- sudo apt-get install python-smbus
- sudo pip install spidev
在树莓派终端运行:
- sudo apt-get install p7zip-full
- wget http://www.waveshare.net/w/upload/5/53/1.3inch-OLED-HAT-Code.7z
- 7z x 1.3inch-OLED-HAT-Code.7z -r -o./1.3inch-OLED-HAT-Code
- sudo chmod 777 -R 1.3inch-OLED-HAT-Code
- cd 1.3inch-OLED-HAT-Code/RaspberryPi/
- cd C
- make clean
- make
- sudo ./main
- #python2
- cd python2
- sudo python main.py
- sudo python key_demo.py
- #python3
- cd python3
- sudo python3 main.py
- sudo python3 key_demo.py
- sudo nano /boot/config.txt
- #添加如下:
- gpio=6,19,5,26,13,21,20,16=pu
打开C\obj\DEV_Config.h,把如下:
- #define USE_SPI 1
- #define USE_IIC 0
改成
- #define USE_SPI 0
- #define USE_IIC 1
然后重新执行:
- make clean
- make
- sudo ./main
打开python2/config.py,把如下:
- Device_SPI = 1
- Device_I2C = 0
改成
- Device_SPI = 0
- Device_I2C = 1
然后重新执行:
- sudo python main.py
python3同理
- sudo apt-get update
- sudo apt-get install python3-pip
- sudo pip3 install Jetson.GPIO
- sudo groupadd -f -r gpio
- sudo usermod -a -G gpio your_user_name
- sudo cp /opt/nvidia/jetson-gpio/etc/99-gpio.rules /etc/udev/rules.d/
- sudo udevadm control --reload-rules && sudo udevadm trigger
【注意】your_user_name 是你使用的用户名,比如说 waveshare
- sudo apt-get install python-smbus
- sudo apt-get install python3-pil
- sudo apt-get install python3-numpy
- sudo apt-get install p7zip
- wget http://www.waveshare.net/w/upload/5/53/1.3inch-OLED-HAT-Code.7z
- 7z x 1.3inch-OLED-HAT-Code.7z
- sudo chmod 777 -R 1.3inch-OLED-HAT-Code
- cd 1.3inch-OLED-HAT-Code/JetsonNano/
由于JetsonNano的GPIO驱动能力弱,只能使用SPI进行控制
- cd C
- make clean
- make
- sudo ./main
- #python2
- cd python2
- sudo python main.py
- sudo python key_demo.py
- #python3
- cd python3
- sudo python3 main.py
- sudo python3 key_demo.py