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的注释补齐,并阅读数据手册中的命令表,实现屏幕对比度、屏幕亮灭、水平滚动.......

相关推荐
Svan.2 分钟前
Portable Watch:基于STM32的便携智能手表
arm开发·驱动开发·stm32·嵌入式硬件·硬件工程·pcb工艺·智能手表
Moonnnn.30 分钟前
【51单片机】串口通信
笔记·嵌入式硬件·学习·51单片机
dd向上33 分钟前
聊聊GPIO 工作模式
c语言·c++·单片机·嵌入式硬件
DIY机器人工房3 小时前
[12-2] BKP备份寄存器&RTC实时时钟 江协科技学习笔记(14个知识点)
笔记·科技·stm32·学习·江协科技
aixingkong9214 小时前
需求初步探讨-从OR-AR
服务器·嵌入式硬件·自动驾驶·硬件工程
XINVRY-FPGA9 小时前
XCVU47P-2FSVH2892E Xilinx Virtex UltraScale+ FPGA AMD
c语言·c++·人工智能·嵌入式硬件·阿里云·fpga开发·fpga
、我是男生。10 小时前
STM32的内部RC与外部晶振电路
stm32·单片机·嵌入式硬件
qq_4017004114 小时前
stm32移植freemodbus
stm32·单片机·嵌入式硬件
懒惰的bit15 小时前
STM32F103C8T6 学习笔记摘要(二)
笔记·stm32·学习
A-花开堪折16 小时前
01-驱动开发开篇
linux·嵌入式硬件