9075|12

212

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

ESP-mp-01开发板SPI驱动OLED显示 [复制链接]

 
 
       昨天使用ESP-mp-01开发板的I2C成功驱动OLED显示,今天测试了SPI方式,同样成功点亮OLED。
【1】硬件连接:
ESP8266 SPI对应的引脚为Pin(14)--SCK,Pin(13)--MOSI,Pin(12)--MISO,Pin(16)--CS:


【2】程序源码:
  1. # main.py -- put your code here!

  2. import machine
  3. from machine import Pin,I2C,SPI
  4. import ssd1306
  5. import math
  6. import time

  7. # construct an I2C bus
  8. #i2c = I2C(scl=Pin(14), sda=Pin(2), freq=100000)
  9. #display = ssd1306.SSD1306_I2C(128,64, i2c)

  10. # construct an SPI bus on the given pins
  11. # polarity is the idle state of SCK
  12. # phase=0 means sample on the first edge of SCK, phase=1 means the second
  13. spi = SPI(baudrate=10000000, polarity=1, phase=0, sck=Pin(14,Pin.OUT), mosi=Pin(13,Pin.OUT), miso=Pin(12))
  14. display = ssd1306.SSD1306_SPI(128, 64, spi, Pin(5),Pin(4), Pin(16))

  15. led_blue = machine.Pin(2, Pin.OUT)  # 设置 GPIO2 为输出
  16. led_blue.high()

  17. try:
  18.   display.poweron()
  19.   display.init_display()

  20.   display.text('ESP-mp SPI OLED',1,1)
  21.   display.text('Hi, MicroPython!',1,16)
  22.   display.text('By: hbzjt2012',1,31)
  23.   
  24.   # Write display buffer
  25.   display.show()
  26.   time.sleep(3)

  27.   display.fill(0)
  28.   for x in range(0, 128):
  29.     display.pixel(x, 32+int(math.sin(x/64*math.pi)*7 + 8), 1)
  30.   display.show()
  31.   time.sleep(3)

  32.   display.fill(0)

  33.   x = 0
  34.   y = 0
  35.   direction_x = True
  36.   direction_y = True

  37.   while True:
  38.     # Clear the previous lines
  39.     prev_x = x
  40.     prev_y = y

  41.     # Move bars
  42.     x += (1 if direction_x else -1)
  43.     y += (1 if direction_y else -1)

  44.     # Bounce back, if required
  45.     if x == 128:
  46.        direction_x = False
  47.        x = 126
  48.     elif x == -1:
  49.        direction_x = True
  50.        x = 1
  51.     if y == 64:
  52.        direction_y = False
  53.        y = 63
  54.     elif y == -1:
  55.        direction_y = True
  56.        y = 1

  57.     # Draw new lines
  58.     for i in range(64):
  59.       display.pixel(prev_x, i, False)
  60.       display.pixel(x, i, True)
  61.     for i in range(128):
  62.       display.pixel(i, prev_y, False)
  63.       display.pixel(i, y, True)

  64.     # Make sure the corners are active
  65.     display.pixel(0,   0,  True)
  66.     display.pixel(127, 0,  True)
  67.     display.pixel(0,   63, True)
  68.     display.pixel(127, 63, True)
  69.    
  70.     # Write display buffer
  71.     display.show()


  72. except Exception as ex:
  73.   led_blue.low()
  74.   print('Unexpected error: {0}'.format(ex))
  75.   display.poweroff()
复制代码
【3】效果演示:






最新回复

遇到问题可以到论坛来交流的。  详情 回复 发表于 2017-3-14 22:13
点赞 关注
 
 

回复
举报

662

帖子

0

TA的资源

纯净的硅(初级)

沙发
 
SPI 比 I2C 多了好几条线ˋ,OLED 画面的更新速度会加快很多吗?

点评

SPI的传输速度肯定快一些,刷新速度就要看OLED的性能了。  详情 回复 发表于 2016-12-14 11:02
SPI的传输速度肯定快一些,刷新速度就要看OLED的性能了。  详情 回复 发表于 2016-12-14 11:02
 
 
 

回复

1万

帖子

25

TA的资源

版主

板凳
 
slotg 发表于 2016-12-14 11:00
SPI 比 I2C 多了好几条线ˋ,OLED 画面的更新速度会加快很多吗?

SPI的传输速度肯定快一些,刷新速度就要看OLED的性能了。
 
 
 

回复

1万

帖子

25

TA的资源

版主

4
 
slotg 发表于 2016-12-14 11:00
SPI 比 I2C 多了好几条线ˋ,OLED 画面的更新速度会加快很多吗?

SPI的传输速度肯定快一些,刷新速度就要看OLED的性能了。
 
 
 

回复

1万

帖子

25

TA的资源

版主

5
 
 
 

回复

1万

帖子

25

TA的资源

版主

6
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

7
 
请问8根线的话要怎么连?就是多出来一根名称为BL的引脚。

点评

BL为背光引脚  详情 回复 发表于 2017-3-15 08:28
是什么型号的OLED?  详情 回复 发表于 2017-3-14 21:20
 
 
 

回复

1万

帖子

25

TA的资源

版主

8
 
jaysmile 发表于 2017-3-14 17:57
请问8根线的话要怎么连?就是多出来一根名称为BL的引脚。

是什么型号的OLED?
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

9
 
dcexpert 发表于 2017-3-14 21:20
是什么型号的OLED?

Driver IC:ST7735

点评

有一种OLED是带中文字库的,多一个CS2。不知道你这种OLED是怎样的,可以先不管它试试看  详情 回复 发表于 2017-3-14 21:43
 
 
 

回复

1万

帖子

25

TA的资源

版主

10
 

有一种OLED是带中文字库的,多一个CS2。不知道你这种OLED是怎样的,可以先不管它试试看
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

11
 
dcexpert 发表于 2017-3-14 21:43
有一种OLED是带中文字库的,多一个CS2。不知道你这种OLED是怎样的,可以先不管它试试看

试试吧,还在慢慢学习

点评

遇到问题可以到论坛来交流的。  详情 回复 发表于 2017-3-14 22:13
 
 
 

回复

1万

帖子

25

TA的资源

版主

12
 
jaysmile 发表于 2017-3-14 21:58
试试吧,还在慢慢学习

遇到问题可以到论坛来交流的。
 
 
 

回复

212

帖子

0

TA的资源

一粒金砂(高级)

13
 
jaysmile 发表于 2017-3-14 17:57
请问8根线的话要怎么连?就是多出来一根名称为BL的引脚。


BL为背光引脚
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表