[其它] 【pyBoard试用】四:SPI驱动OLED 屏幕

[复制链接]
3748|3
 楼主| 数码小叶 发表于 2018-3-19 16:48 | 显示全部楼层 |阅读模式
本帖最后由 数码小叶 于 2018-3-19 16:52 编辑

距离上一篇帖子隔了很长时间了,中间因为自己要充电,所以时间隔长了。pyBoard这个板子肯定得学习下去啊
这次主要来加个显示,后面可玩性就大大增加了。考虑到板子这么mini,首先想到了那块0.96寸的OLED 屏幕。

微信图片_20180319115330.jpg

屏幕有三种连接方式:IIC,三线SPI,四线SPI,

微信图片_20180319115326.jpg


板子目前接的是四线SPI方式,所以就用四线SPI驱动吧(这个略bug,每次调整都要焊接4.7K的电阻)。
pyBoard引出了两组IIC和SPI通讯口

Snipaste_2018-02-28_21-18-08.png

Snipaste_2018-03-19_11-05-03.png

Snipaste_2018-03-19_11-04-46.png

Snipaste_2018-03-19_11-05-14.png


板子虽小,接口还是很丰富的。
OLED 屏幕上有7个接线口:GND、VCC、D0(时钟)、D1(数据)、RES(复位)、DC(命令、数据)、CS(片选);


首先要包含ssd1306.py模块进去,打开库里的ssd1306.py
Snipaste_2018-03-19_13-43-00.png

Snipaste_2018-03-19_13-43-08.png

可以看到,这个库是兼容IIC 和SPI模式的,调用不同的函数进行初始化即可。
其实这个ssd1306.py,网上有好几个版本,比如这种
Snipaste_2018-03-19_14-05-58.png

利用参数来判别通讯协议。大概看了三四个版本,区别在于一个是
  1. import framebuf

一个是
  1. import pyb

那这两个有啥区别呢,继续往里扒
Snipaste_2018-03-19_15-57-02.png


Snipaste_2018-03-19_15-57-27.png



再结合上面,就懂了,这两个一个来自pyb.SPI,一个来自于machine.SPI
到这还没结束,还继续扒官网
Snipaste_2018-03-19_16-03-22.png


Snipaste_2018-03-19_16-05-40.png


一个通用,一个专用的去别,不过这个对这块板子不影响

到这就弄得比较清楚了,还剩一个问题,就可以来连线了,就是SPI1和SPI2的区分,查看pyb.SPI Snipaste_2018-03-19_16-43-26.png
以参数1、2或x、y来区分。不过还是用0和1比较好,为啥呢,更通用呗

Snipaste_2018-03-19_16-46-31.png
最后效果如下

微信图片_20180319115335.jpg







yangye2018 发表于 2018-6-20 15:11 | 显示全部楼层
有没有具体的连线和程序啊
 楼主| 数码小叶 发表于 2018-6-20 20:47 | 显示全部楼层
yangye2018 发表于 2018-6-20 15:11
有没有具体的连线和程序啊

连线不是已经很详细了么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

105

主题

2560

帖子

19

粉丝
快速回复 在线客服 返回列表 返回顶部