0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用I2C协议点亮OLED

CHANBAEK 来源:鱼香ROS 作者:小鱼 2023-07-15 16:47 次阅读

你好,我是爱吃鱼香ROS的小鱼。本节我们就尝试直接使用I2C协议来点亮OLED,因为主要测试I2C协议,所以对于复杂的显示处理部分小鱼就略过了,毕竟有方便的开源库使用,我们也不用那么纠结,如果实在想使用I2C直接驱动OLED,可以去看小鱼在雷达驱动板上手撸的代码。

教程所使用硬件平台为MicroROS学习板V1.0.0,可点击阅读原文购买及查看详情

图片

一、新建工程

还是老样子,不过这次不需要添加任何依赖。

图片

二、I2CAPI介绍

这里我们需要了解几个Wire常用的API。

1.Wire.begin 初始化可以设置引脚,如Wire.begin(18, 19);

2.Wire.beginTransmission,开始传输,传入目标地址,如OLED-0x3C Wire.beginTransmission(0x3c);

3.Wire.write 开始写数据, 直接传入要写的数据即可

4.Wire.endTransmission 结束传输,写入完成后调用

三、编写代码

#include < Arduino.h >
#include "Wire.h"

uint8_t cmd_ssd1315[] = {0xae, 0x00, 0x10, 0x40, 0x81, 0xcf, 0xa1, 0xc8, 0xa6, 0xa8,
                         0x3f, 0xd3, 0x00, 0xd5, 0x80, 0xd9, 0xf1, 0xda, 0x12, 0xdb,
                         0x40, 0x20, 0x00, 0x8d, 0x14, 0xa4, 0xa6, 0xaf};

void setup()
{
  Wire.begin(18, 19);
  Wire.beginTransmission(0x3c);
  for (int i = 0; i < 28; i++)
  {
    Wire.write(cmd_ssd1315[i]);
  }
  Wire.endTransmission();
}

void loop()
{
  // put your main code here, to run repeatedly:
}

这里的代码,我们将cmd_ssd1315中的数据依次通过I2C写入地址为0x3C的设备中,这些数据分别代表着初始化OLED所需要的参数,如亮度、方向等信息,具体请参考SSD1315的手册,或自行百度。

四、测试

将代码下载到开发板,查看OLED,可以看到OLED此时成功亮起,有很多斑点,属于正常现象。

图片

五、总结

本节我们主要尝试通过I2C发送一段指令给OLED,并将其成功点亮。至此我们嵌入式开发基础篇的内容就全部完成了,下一章开始我们将正式进入MicroROS的开发中来,到时会有我们熟悉的WIFI、蓝牙等模块的使用。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • OLED
    +关注

    关注

    119

    文章

    6198

    浏览量

    224113
  • 代码
    +关注

    关注

    30

    文章

    4780

    浏览量

    68529
  • 学习板
    +关注

    关注

    0

    文章

    44

    浏览量

    12159
  • I2C协议
    +关注

    关注

    0

    文章

    26

    浏览量

    8472
  • ROS
    ROS
    +关注

    关注

    1

    文章

    278

    浏览量

    17001
收藏 人收藏

    评论

    相关推荐

    I2C总线协议及其应用(图)

    I2C总线协议及其应用
    发表于 06-01 20:22 7029次阅读

    什么是i2c总线

    什么是i2c总线  下载请点击: i2c总线协议中文版 
    发表于 11-05 09:26 2919次阅读

    I2C总线协议及其应用

    I2C总线协议及其应用 一、I2C总线介绍: ---- 由于大规模集成电路威廉希尔官方网站 的发展,在单个芯片集成CPU以及组成一个单独工作系统
    发表于 02-08 11:23 1567次阅读
    <b class='flag-5'>I2C</b>总线<b class='flag-5'>协议</b>及其应用

    I2C最新协议标准

    I2C最新协议标准,详细介绍了IIC信号要求,供大家参考,
    发表于 12-22 17:59 13次下载

    I2C通信协议应该如何学习

    我最近刚做完I2C通信协议的编写与调试,下面介绍一下我从一开始理解夏老师的程序,修改程序,直到下板调试整个的学习过程,希望对大家学习 I2C 有一定的帮助。一、 分析源代码学习 I2C
    发表于 04-28 08:00 21次下载
    <b class='flag-5'>I2C</b>通信<b class='flag-5'>协议</b>应该如何学习

    I2C系列的合集,可以系统学习I2C协议

    这篇文章给大家带来了I2C系列的合集,可以系统学习I2C协议。大家赶紧看看吧! 1、I2C总线:何时使用I2C缓冲器 本文讨论了使用
    的头像 发表于 09-23 15:28 3147次阅读

    I2C总线协议英文资料

    I2C总线协议英文资料
    发表于 11-24 10:00 13次下载

    STM32学习之I2C协议(读写EEPROM)

    关于STM32学习分享第七章 I2C协议(读写EEPROM)文章目录关于STM32学习分享前言二、代码1.i2c.c2.i2c.h3.main.c总结前言开始!开始!单片机的I2C
    发表于 11-30 15:21 32次下载
    STM32学习之<b class='flag-5'>I2C</b><b class='flag-5'>协议</b>(读写EEPROM)

    MPU6050的I2C通信协议

    不同硬件有不同的I2C协议
    发表于 12-06 12:21 3次下载
    MPU6050的<b class='flag-5'>I2C</b>通信<b class='flag-5'>协议</b>

    嵌入式内核及驱动开发-09IIC子系统框架使用(I2C协议和时序,I2C驱动框架,I2C从设备驱动开发,MPU6050硬件连接

    文章目录I2c协议和时序I2c介绍I2c硬件连接I2c总线的信号I2c总线写时序
    发表于 12-06 14:06 17次下载
    嵌入式内核及驱动开发-09IIC子系统框架使用(<b class='flag-5'>I2C</b><b class='flag-5'>协议</b>和时序,<b class='flag-5'>I2C</b>驱动框架,<b class='flag-5'>I2C</b>从设备驱动开发,MPU6050硬件连接

    硬件I2C与模拟I2C

    配置;而软件I2C是没有寄存器这个概念的。 软件I2C一般是使用GPIO管脚,用软件控制SCL,SDA线输出高低电平,模拟i2c协议的时序。例如下面这段
    发表于 12-28 19:14 81次下载
    硬件<b class='flag-5'>I2C</b>与模拟<b class='flag-5'>I2C</b>

    一文看懂I2C协议

    电子行业最常用的3种串行通讯协议:UART、SPI和I2C。前面介绍了串口通讯协议及其FPGA实现,SPI协议。本篇文章介绍I2C通讯
    发表于 01-25 18:32 40次下载
    一文看懂<b class='flag-5'>I2C</b><b class='flag-5'>协议</b>

    I2C通信协议:了解I2C Primer、 PMBus和SMBus

    I2C,即Inter-Integrated Circuit,是一种常用的串行通信协议,用于在器件之间——特别是两个或两个以上不同电路之间建立通信。I2C Primer是最常用的I2C
    的头像 发表于 06-15 15:29 5693次阅读
    <b class='flag-5'>I2C</b>通信<b class='flag-5'>协议</b>:了解<b class='flag-5'>I2C</b> Primer、 PMBus和SMBus

    I2C串行总线协议是什么?I2C总线有哪些优点?

    I2C串行总线协议是什么?I2C总线有哪些优点? I2C(Inter-Integrated Circuit)是一种串行总线协议,由Phili
    的头像 发表于 09-12 11:18 1649次阅读

    I2C协议的基础知识

    本文从I2C协议的概述开始,描述协议的历史、不同速度模式、物理层和数据帧结构,最后介绍I2C混合电压系统中电平兼容性以及上拉电阻大小计算。
    的头像 发表于 10-22 15:51 487次阅读
    <b class='flag-5'>I2C</b><b class='flag-5'>协议</b>的基础知识