立即注册

micropython-microbit 中文社区

楼主: shaoziyang

用官方的SSD1306.py 驱动 OLED

  [复制链接]

该用户从未签到

发表于 2019-1-9 14:31:28 | 显示全部楼层
现在显示器已初始化可以接受“poweroff()”的命令。
发送show()后,发生了许多散点和黑条,显示不正常,改程序里的屏幕分辨率后重启可以看到文本闪烁。
这是啥原因?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-1-9 23:16:10 | 显示全部楼层
    Junki旺 发表于 2019-1-9 14:31
    现在显示器已初始化可以接受“poweroff()”的命令。
    发送show()后,发生了许多散点和黑条,显示不正常,改 ...

    可以fill()清除显示试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-1-26 23:22:42 | 显示全部楼层
    用fill(0)无法清除,屏幕还是白光和一些黑点,只有poweroff()和poweron()有反应,是oled屏坏的吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-1-26 23:32:50 | 显示全部楼层
    oled屏是1.3英寸的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-1-27 13:19:13 | 显示全部楼层
    Junki旺 发表于 2019-1-26 23:22
    用fill(0)无法清除,屏幕还是白光和一些黑点,只有poweroff()和poweron()有反应,是oled屏坏的吗? ...

    看看是否分辨率不同,或者控制器指南有区别,需要查看数据手册去分析
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-6-12 10:47:50 | 显示全部楼层
    同样的代码,驱动0.96的没问题,驱动1.3寸的就不行。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-6-12 11:00:17 | 显示全部楼层
    MicroPi 发表于 2019-6-12 10:47
    同样的代码,驱动0.96的没问题,驱动1.3寸的就不行。

    1.3寸的可能参数有不同,还没有测试过。可以找OLED的说明看看,对比一下有什么不同。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-7-15 14:02:12 | 显示全部楼层
    本帖最后由 滕仔_usSCj 于 2019-7-15 14:06 编辑

    测试了一下,发现不能用,提示不支持传入关键字参数

    -----------------------这是MAIN,ssd1306.py和main.py在pybV1.1目录下 --------------------------
    '''
    实验名称:OLED显示屏(I2C总线)
    版本:v1.0
    日期:2019.4
    作者:
    '''


    from machine import I2C,Pin         #从machine模块导入I2C、Pin子模块
    from ssd1306 import SSD1306_I2C     #从ssd1306模块中导入SSD1306_I2C子模块

    i2c = I2C(sda=Pin("Y10"), scl=Pin("Y9"))   #pyBoard I2C初始化:sda--> X12, scl --> X11
    oled = SSD1306_I2C(128, 64, i2c, addr=0x3c) #OLED显示屏初始化:128*64分辨率,OLED的I2C地址是0x3c  下面提示不支持关键字参数就是这一行的addr=0x3c

    oled.text("Hello World!", 0,  0)      #写入第1行内容
    oled.text("MicroPython",  0, 20)      #写入第2行内容
    oled.text("By 01Studio",  0, 50)      #写入第3行内容

    oled.show()   #OLED执行显示


    ------------------------以下是调试错误信息---------------------------------------
    PYB: sync filesystems
    PYB: soft reboot
    Traceback (most recent call last):
      File "main.py", line 13, in <module>
    TypeError: function does not take keyword arguments
    MicroPython v1.9.3 on 2017-11-01; PYBv1.1 with STM32F405RG
    Type "help()" for more information.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-5-12 11:06
  • 签到天数: 8 天

    [LV.3]偶尔看看II

     楼主| 发表于 2019-7-15 15:07:43 | 显示全部楼层
    滕仔_usSCj 发表于 2019-7-15 14:02
    测试了一下,发现不能用,提示不支持传入关键字参数

    -----------------------这是MAIN,ssd1306.py和main ...

    默认地址就是0x3c,你把addr=0x3c去掉试试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2019-7-19 11:09:04 | 显示全部楼层
    shaoziyang 发表于 2019-7-15 15:07
    默认地址就是0x3c,你把addr=0x3c去掉试试

    addr=0x3c去掉又提示缺少1个参数,我用I2C.scan()扫描总线得到的是60,这个是十进制,转换为十六进制也是0x3C,说明OLED地址没错!
    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 立即注册

    Archiver|手机版|小黑屋|micropython-microbit 中文社区

    GMT+8, 2019-9-21 03:22 , Processed in 0.093986 second(s), 18 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表