从零开始学习单片机12

编译上一次的代码并烧录到板卡中,用两根杜邦线分别连接逻辑分析仪和板卡上的SCL1和SDA1口(代码上模拟的两个IO口),连接逻辑分析仪和电脑,点击逻辑分析软件的Start后点击复位按键,找到数据并进行分析

SCL为高时,SDA从高变低,发送的数据为0x55(0b0101 0101),与原理图相符

应答信号:把SDA拉高,在SCL为高的时候,不停检测SDA是否被拉低,由于没有应答,代码中当time>100时自动应答。结束信号,SCL为高时,SDA由低变高

发送的数据为0x35(0b0011 0101)

发送的数据为0x75(0b0111 0101)

温湿度传感器

温湿度传感器的引脚分配

通过改变 ADDR 的连接方式可以改变传感器的 I2C 地址。当 ADDR 接低电平时,传感器芯片的地址为 0x44,当 ADDR 接高电 平时,传感器芯片的地址为 0x45。(在通信过程中 ADDR 的电平不能发生改变)其中0x44指的是I2C地址的高7位,第八位为读写标志位。

51单片机P0口是没有上拉能力的,而SDA和SCL分别连接的P0^1和P0^2,所以需要加上两个上拉电阻

该芯片有两种转换模式:单次转换模式和连续转换模式

单次转换模式,每初始化一次,只能读取一次温湿度值,读取完会进行休眠,下次检测需要重新初始化(一般用于低功耗产品里)

连续转换模式,初始化一次后,芯片就会一直处于检测的状态中,可以随时读取最新的数据

相关推荐
乌暮29 分钟前
从 `println` 到生产级日志:Spring Boot 日志体系完全指南
java·开发语言·jvm·spring boot·后端·学习·面试
xian_wwq1 小时前
【学习笔记】Milvus 是什么?为什么 RAG 系统经常使用它?-14
笔记·学习·milvus
自信150413057592 小时前
重生之从0开始学习c++之string(下)
c++·学习·stl
kmomo..2 小时前
Linux 驱动开发学习笔记:UART、触摸屏与 ADC 驱动实战
linux·驱动开发·学习
youdexiang2 小时前
如何建立个人学习资料库?
学习
人工智能培训2 小时前
具身智能环境交互与学习范式原理
大数据·linux·人工智能·学习·算法·机器学习
Tj8105232 小时前
企业培训如何真正落地:从组织能力建设到培训ROI评估的完整指南
学习·学习方法
~kiss~2 小时前
LangGraph 和 ToT,Tree of Thoughts 同一步骤多条路线并行探索,用LLM做评判和减枝
学习
艾莉丝努力练剑3 小时前
【AI大模型接入SDK】ChatServer接口设计规范
网络·c++·人工智能·学习·大模型·设计规范
qq_284274053 小时前
电动机控制与PLC入门:自耦减压启动、反接制动与速度继电器KS,及PLC诞生、定义、特点与分类(含考点)
笔记·学习·自动化·制造