IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Micropython——关于Pico中I2C和SPI的实际应用示例(OLED屏幕显示) -> 正文阅读

[嵌入式]Micropython——关于Pico中I2C和SPI的实际应用示例(OLED屏幕显示)

博主之前的文章简要介绍了一下I2C总线和SPI总线的原理,这篇文章来详细介绍一下我们如何通过 I2C总线和SPI与OLED屏幕进行通信(驱动芯片SSD1306),以及我们在现实生活中的简单应用。


博主在这里应用的是一款7针的0.96寸的OLED屏,可进行I2C和SPI双通信,如图一所示。

首先,我们在这里先使用的是I2C通信。该模块,兼容4线SPI接口3线SPI接口和IIC 接口,默认4线SPI接口。所以我们要在硬件上对其进行处理。

图一:0.96寸 7针 OLED显示屏,兼容SPI/I2C

图二:OLED屏幕背面图

  • 4 线 SPI:默认方式 4 线 SPI,需要短接 R3、R4 电阻,去掉 R1、R2、R5、R6 电 阻
  • IIC 模式 需要短接 R1、R4、R8,去掉 R2、R3 电阻
  • 3 线 SPI 模式,建议不采用该模式,不常用

I2C总线与OLED屏幕通信

接法:

  • GND: 电源地
  • VCC: 2.2V~5.5V
  • SCL: CLK 时钟 (高电平 2.2V~5.5V)
  • SDA: MOSI 数据 (高电平 2.2V~5.5V)
  • CS:接地
#关于驱动代码,在下一篇文章详细讲解,作者正在整理文章
from machine import SoftI2C,Pin
from ssd1306 import SSD1306_I2C
import utime

vcc = Pin(19, Pin.OUT)
gnd = Pin(18, Pin.OUT)
led = Pin(25, Pin.OUT)
vcc.value(1)
gnd.value(0)
utime.sleep(1)
i2c = SoftI2C(scl = Pin(15),sda = Pin(14))
print("I2C设备号:" + str(i2c.scan()[0]))

oled = SSD1306_I2C(128, 64, i2c) #创建oled对象
while True:
    led.toggle()
    utime.sleep(3)
#屏幕上显示的图像
    oled.text("Raspberry Pi", 0, 0)
    oled.text("Pico", 80, 10)
    oled.text("MicroPython", 0, 20)
    oled.text("OLED(ssd1306)", 0, 40)
    oled.show()
#为什么要弄个LED灯,这样可以看到我们的程序是否在正常运行,可以很直观地看到程序运行

图三:代码展示效果


SPI总线与OLED屏幕通信

import machine
from machine import Pin,SoftSPI
from ssd1306 import SSD1306_SPI
 
spi = SoftSPI(baudrate=80000000, polarity=0, phase=0, sck=Pin(15,Pin.OUT), sda=Pin(14,Pin.OUT)) #sck(D0)=6 sda(D1)=7
oled = SSD1306_SPI(128, 64, spi, Pin(4),Pin(5), Pin(10)) #4=dc 5=res 10=cs
 
oled.text("Raspberry Pi", 0, 0)
oled.text("Pico", 80, 10)
oled.text("MicroPython", 0, 20)
oled.text("OLED(ssd1306)", 0, 40)
oled.show()

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-09 18:36:52  更:2022-04-09 18:37:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:39:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码