news 2026/5/25 18:57:30

Day29:I2C 高级应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day29:I2C 高级应用

多字节读写:
连续读取 / 写入多个字节 (如读取温湿度传感器数据)
从设备模式:
STM32 作为从设备响应主设备请求
适用于多 MCU 系统或特定外设通信
I2C 常见问题与解决方案:
通信失败:检查上拉电阻、SDA/SCL 是否接反、地址是否正确
时序问题:降低通信速率 (如从 400Kbps 降至 100Kbps)
I2C 应用案例:
连接 EEPROM 存储数据
连接 OLED 显示屏
连接温湿度传感器 (DHT11/SHT30)
连接加速度计 / 陀螺仪 (MPU6050)
代码示例:(读取 DHT11 温湿度数据)

// DHT11协议(简化版)
uint8_t DHT11_Read(void){
uint8_t data[5] = {0};
uint8_t i, j;

// 主机发送起始信号
HAL_GPIO_WritePin(DHT11_PORT, DHT11_PIN, GPIO_PIN_RESET); // 拉低SDA
HAL_Delay(20); // 持续至少18ms
HAL_GPIO_WritePin(DHT11_PORT, DHT11_PIN, GPIO_PIN_SET); // 拉高SDA
HAL_Delay(30); // 等待响应

// 等待DHT11响应
while(HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)); // 等待SDA变低
while(!HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)); // 等待SDA变高
while(HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)); // 等待SDA变低

// 接收40位数据
for(i=0; i<5; i++){
for(j=0; j<8; j++){
while(!HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)); // 等待高电平
HAL_Delay(30); // 延时判断是0还是1
data[i] <<= 1;
if(HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)) data[i] |= 1; // 高电平为1
while(HAL_GPIO_ReadPin(DHT11_PORT, DHT11_PIN)); // 等待低电平
}
}

// 校验
if(data[4] == (data[0] + data[1] + data[2] + data[3])){
humidity = data[0]; // 湿度整数部分
temperature = data[2]; // 温度整数部分
return 1; // 成功
}
return 0; // 失败
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/26 6:00:21

Windows视频下载终极指南:yt-dlp-gui快速上手攻略

还在为无法下载在线视频而烦恼吗&#xff1f;yt-dlp-gui作为Windows平台上最强大的视频下载工具&#xff0c;为普通用户提供了简单直观的解决方案。本文将带你从零开始&#xff0c;掌握这款工具的完整使用技巧。 【免费下载链接】yt-dlp-gui Windows GUI for yt-dlp 项目地址…

作者头像 李华
网站建设 2026/5/26 6:01:28

Maccy剪贴板管理器:释放你的复制粘贴超能力

Maccy剪贴板管理器&#xff1a;释放你的复制粘贴超能力 【免费下载链接】Maccy Lightweight clipboard manager for macOS 项目地址: https://gitcode.com/gh_mirrors/ma/Maccy 在数字工作时代&#xff0c;复制粘贴操作占据了我们日常工作的核心地位。Maccy作为一款专为…

作者头像 李华
网站建设 2026/5/26 10:27:39

GPU显存健康检测神器:memtest_vulkan让显卡故障无处遁形

GPU显存健康检测神器&#xff1a;memtest_vulkan让显卡故障无处遁形 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 你的显卡是否曾经遭遇过这些困扰&#xff1…

作者头像 李华
网站建设 2026/5/26 6:01:28

iStore完整使用教程:OpenWRT插件中心快速入门指南

iStore完整使用教程&#xff1a;OpenWRT插件中心快速入门指南 【免费下载链接】istore 一个 Openwrt 标准的软件中心&#xff0c;纯脚本实现&#xff0c;只依赖Openwrt标准组件。支持其它固件开发者集成到自己的固件里面。更方便入门用户搜索安装插件。The iStore is a app sto…

作者头像 李华
网站建设 2026/5/26 6:00:23

如何5分钟搭建自动Twitch掉落收集系统:完整操作指南

如何5分钟搭建自动Twitch掉落收集系统&#xff1a;完整操作指南 【免费下载链接】TwitchDropsMiner An app that allows you to AFK mine timed Twitch drops, with automatic drop claiming and channel switching. 项目地址: https://gitcode.com/GitHub_Trending/tw/Twitc…

作者头像 李华
网站建设 2026/5/26 6:02:52

Android弹窗终极指南:BasePopup快速上手与实战技巧

Android弹窗终极指南&#xff1a;BasePopup快速上手与实战技巧 【免费下载链接】BasePopup Android下打造通用便捷的PopupWindow弹窗库 项目地址: https://gitcode.com/gh_mirrors/ba/BasePopup BasePopup是一个专为Android平台设计的强大弹窗库&#xff0c;旨在帮助开…

作者头像 李华