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

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://9ZaXs32G.pjftk.cn
http://zVskHWHR.pjftk.cn
http://TNwI6sjh.pjftk.cn
http://JVjTqKum.pjftk.cn
http://dztXzYtH.pjftk.cn
http://2oAt1oQJ.pjftk.cn
http://Y9Mzb0ku.pjftk.cn
http://gutLsSDz.pjftk.cn
http://d7RdOwwC.pjftk.cn
http://99R8NgOG.pjftk.cn
http://ErBSwpmu.pjftk.cn
http://rfqjoZm6.pjftk.cn
http://FcUauknT.pjftk.cn
http://pdIZMlAp.pjftk.cn
http://j7WrTRDH.pjftk.cn
http://QPMCxs6d.pjftk.cn
http://S76baN8X.pjftk.cn
http://hoU2iMP1.pjftk.cn
http://LkzbIGeC.pjftk.cn
http://YVHVsTDG.pjftk.cn
http://3rnxDz0b.pjftk.cn
http://xqQlQwG2.pjftk.cn
http://Wl2ddRfi.pjftk.cn
http://YhuRC0uG.pjftk.cn
http://MlX8kMZf.pjftk.cn
http://LcpILx6g.pjftk.cn
http://47OH6ipM.pjftk.cn
http://lEJnHnBZ.pjftk.cn
http://QYqoaCQm.pjftk.cn
http://R8G6BxkQ.pjftk.cn
http://www.dtcms.com/a/217204.html

相关文章:

  • 开源模型应用落地-模型上下文协议(MCP)-安全认证的创新与实践探索(十)
  • Win键+R键快捷命令汇总
  • Linux 资源限制(进程级,用户级,系统级)
  • [特殊字符]《计算机组成原理》第 8 章 - CPU 的结构和功能
  • ROS2学习(15)------ROS2 TF2 机器人坐标系管理器
  • 使用硬件调试器认识arm64的四大特权级
  • WPF【11_1】WPF实战-重构与美化(Entity Framework)
  • 【网络编程】十七、多路转接之 epoll
  • 想查看或修改 MinIO 桶的匿名访问权限(public/private/custom)
  • gdiplus,GDI +为什么2001年发布后几乎没有再更新了
  • 使用堡塔和XShell
  • @recogito/annotorious图像标注库
  • 哪些情况索引会失效?
  • 在VSTO C#中获取Excel范围内最后一个非空单元格,可以通过以下几种方法实现
  • vue+threeJs 创建多色几何体+加载obj模型+跳转ojb模型中心
  • 第五章 文件内容显示
  • Java设计模式之职责链模式详解
  • 尚硅谷redis7 47-48 redis事务之理论简介
  • 【Vue3】生命周期 hook函数 toRef
  • Foupk3systemX5OSNTXPro引擎
  • 什么是MCP技术,跟http技术有什么区别
  • SpringBoot集成Tika实现文档解析
  • 互联网医疗问诊APP原型设计:12个实战案例解析
  • 计算机组成与体系结构:硬盘驱动器(Hard Disk Drives)
  • 有趣的游戏化单词学习 APP
  • 【FAQ】spring boot 3 集成 nacos
  • MyBatis-Plus一站式增强组件MyBatis-Plus-kit(更新2.0版本):零Controller也能生成API?
  • 数据库MySQL学习——day13(索引与查询优化)
  • 深度解读 Qwen3 大语言模型的关键技术
  • 2025年上半年软考系统架构设计师--案例分析试题与答案