打印
[技术讨论]

全志H3实现OLED显示

[复制链接]
213|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
神棍地海棠|  楼主 | 2023-12-15 13:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
悟空派可以通过26 Pin引脚扩充SPI、IIC、UART以及GPIO功能。
此次分享通过双排插座引出的SPI,利用Python,进行经典的0.96寸OLED显示控制。
OLED一共有7根Pin,用杜邦线按下面对应关系将OLED模块与悟空派进行连接:
GND     -> Pin 25  VCC     -> Pin 17 (3.3V)  D0 SCLK -> Pin 23   D1 MOSI -> Pin 19  REST    -> Pin 26 (复位)  DC      -> Pin 12 (命令和数据切换)  CS      -> Pin 24
完成硬件连接后,开始准备Python脚本的编写。
首先需要在系统配置中打开spidev,命令行打开armbian-config
sudo armbian-config
按照顺序依次选择 System -> Hardware -> spi-spidev, 保存退出。
修改/boot/armbianEnv.txt文件,添加下图红色框的内容。
接下来需要安装两个python的库(可以在附件中下载),分别对应控制spi和gpio:
pip3 install gpio-1.0.0-py3-none-any.whlpip3 install spidev-3.6-cp39-cp39-linux_armv7l.whl
还有一点需要注意的是为gpio export文件添加权限:
sudo chmod u=rwx /sys/class/gpio/export
最后开始Python脚本的编写,首先是spi的控制:
#导入库文件import spidev as SPI#声明spispi = SPI.SpiDev()#打开1总线上的0号spi设备spi.open(1,0)#设置spi总线速度spi.max_speed_hz = 50000000#spi发送函数,to_send为list变量spi.xfer(to_send)
然后是控制Rst和切换CMD、Data的Gpio控制:
import gpio as GPIOGPIO.setup(CMDPin, GPIO.OUT)GPIO.setup(RstPin, GPIO.OUT)
完成上述两个外设的初始化,下面声明一个8*128大小的list变量,[color=rgb(12, 147, 228) !important]*附件:MKP_OLED.7z来充当显存,并通过SPI发送数据的方式刷新显示,以达到OLED显示的目的。
GRAM  = []for i in range(0,8):    for j in range(0,128):        GRAM.append(0x0)
这里做了一个简单的竖线移动的Demo。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

192

主题

200

帖子

0

粉丝