当前位置: 首页 > article >正文

STM32之IIC(重点)和OLED屏

  1. 内部集成电路概述
  • 基本概念

内部集成电路(Inter Integrated Circuit)的简称叫做IIC或者I2C,是一种简单的、半双工同步通信的串行通信接口,IIC总线是上世纪80年代(1982年)由飞利浦公司设计出来,当时的目的是为了给MCU和外围芯片提供更简单的交互方式。

  • 引脚说明

IIC总线只需要两根引脚就可以实现通信,一根是数据线(SDA Serial Data),另一根是时钟线(SCL Serial Clock),所有通过IIC接口通信的外围器件都挂载在IIC总线上,通过这种机制就可以实现多机通信。

外围器件的时钟线和数据线都是挂载在IIC总线(由主控芯片提供),并且在空闲状态下所有器件的时钟线(SCL)和数据线(SDA)都被总线的上拉电阻拉高,这样就可以把SDA引脚和SCL引脚设置为开漏模式即可,原因是因为从器件内部结构中SDA和SCL都是开漏结构。

  • 通信速率

可以看到IIC总线支持不同的通信速率,但是一般常用的标准速率100KHZ,但是有的外围器件可以支持高达400KHZ的通信速率,而由于IIC总线是半双工通信,所以同一时刻只能接收或者发送,也就是说IIC总线一般是为了控制,不适合作为大量数据传输的接口。

  • 通信过程

  • 时序分析
  1. 空闲状态

  1. 开始条件

  1. 传输数据

  1. 应答条件

  1. 停止条件

  • 器件地址

对于IIC接口通信的传感器的数据手册中都会描述器件地址,器件地址一般都是采用7bit实现。

  • 时序模拟

由于MCU内部只有3个硬件IIC接口,所以想要使用IIC接口控制传感器,就必须使用IIC接口对应的引脚,把引脚复用为IIC功能,并且对硬件IIC进行配置和初始化,为了提高可移植性,用户也可以采用IO口模拟IIC时序的方案来控制传感器,该方案不受硬件的限制。

  1. OLED屏的原理与应用
  • 基本概念

  • 驱动芯片

  • 器件地址

  • 硬件接线

  • 程序移植
  1. 下载源码

  1. 分析源码
  1. 拷贝文件

  1. 添加文件

  1. 修改源码

  1. 编译工程
  • 取模操作

  1. 图片取模

  1. 汉字取模

  • 验证结果

作业:要求阅读SSD1306的数据手册,独立完成1次OLED屏的程序移植,并把OLED屏的oled.c和oled.h的注释补齐,并阅读数据手册中的命令表,实现屏幕对比度、屏幕亮灭、水平滚动.......

http://www.lryc.cn/news/2394905.html

相关文章:

  • 学习海康VisionMaster之表面缺陷滤波
  • 游戏引擎学习第314天:将精灵拆分成多个层
  • 【学习笔记】深度学习-梯度概念
  • 【数据结构】图的存储(邻接矩阵与邻接表)
  • tomcat yum安装
  • 【Elasticsearch】suggest_mode
  • 数据库只更新特定字段的两种方式(先读后写 vs. 动态组织 SQL)-golang SQLx 实现代码(动态组织 SQL)
  • 从翻译后修饰角度解析人工合成途径与底盘细胞的适配性-文献精读136
  • Cesium快速入门到精通系列教程一
  • [Windows] 剪映 视频编辑处理
  • 决策树 GBDT XGBoost LightGBM
  • stm32 / arduino TPL0401A使用教程
  • 数据结构与算法之单链表面试题(新浪、百度、腾讯)
  • 单板机8088C语言计划
  • 一周学会Pandas2之Python数据处理与分析-数据重塑与透视-pivot() - 透视 (长 -> 宽,有限制)
  • 机器学习中无监督学习方法的聚类:划分式聚类、层次聚类、密度聚类
  • 【HW系列】—溯源与定位—Linux入侵排查
  • CPO-BP+MOPSO,冠豪猪优化BP神经网络+多目标粒子群算法!(Matlab源码)
  • 模块化设计,static和extern(面试题常见)
  • 【快速解决】数据库快速导出成sql文件
  • 使用 Syncfusion 在 .NET 8 中生成 PDF/DOC/XLS/PPT
  • LearnOpenGL-笔记-其十二
  • 【C++】C++面向对象设计的核心思想之一: 接口抽象、解耦和可扩展性
  • Namespace 命名空间的使用
  • mac 下安装Rust Toolchain(Nightly)
  • PHP中文网文章内容提取免费API接口教程
  • 【Java笔记】Spring IoC DI
  • 学习STC51单片机22(芯片为STC89C52RCRC)
  • ubuntu20.04.5--arm64版上使用node集成java
  • Linux --UDP套接字实现简单的网络聊天室