news 2026/6/23 8:48:40

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/6/23 18:18:43

Screenbox媒体播放器终极方案:Windows生态的完整播放指南

Screenbox媒体播放器终极方案&#xff1a;Windows生态的完整播放指南 【免费下载链接】Screenbox LibVLC-based media player for the Universal Windows Platform 项目地址: https://gitcode.com/gh_mirrors/sc/Screenbox 还在为Windows平台找不到合适的视频播放器而烦…

作者头像 李华
网站建设 2026/6/23 18:18:41

Res-Downloader资源嗅探器:告别资源下载烦恼的终极方案

还在为无法下载心仪的网络资源而苦恼吗&#xff1f;当你看到精彩的微信视频号内容、短视频平台内容或者音乐平台歌曲时&#xff0c;是否因为下载限制而感到束手无策&#xff1f;Res-Downloader资源嗅探器正是为解决这些痛点而生&#xff0c;让资源下载变得轻松简单。 【免费下载…

作者头像 李华
网站建设 2026/6/22 22:47:43

如何快速搭建个人音乐云:DSub Android客户端完整教程

如何快速搭建个人音乐云&#xff1a;DSub Android客户端完整教程 【免费下载链接】Subsonic Home of the DSub Android client fork 项目地址: https://gitcode.com/gh_mirrors/su/Subsonic 想要随时随地聆听珍藏的音乐库吗&#xff1f;DSub Android客户端让你轻松搭建个…

作者头像 李华
网站建设 2026/6/23 3:27:29

双螺旋3D圣诞树:JavaScript图形编程的技术深度解析

双螺旋3D圣诞树&#xff1a;JavaScript图形编程的技术深度解析 【免费下载链接】atree Just a simple Christmas tree, based on reddit story 项目地址: https://gitcode.com/gh_mirrors/at/atree 基于Reddit创意启发的螺旋圣诞树项目&#xff0c;通过精妙的数学算法和…

作者头像 李华
网站建设 2026/6/22 16:06:12

vue基于Spring Boot的篮球比赛CBA联赛管理系统应用和研究_x2ij33qg

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华
网站建设 2026/6/22 13:05:40

vue基于Spring Boot的考公考编学习课程资料推荐系统_0hcxvdf4_

目录具体实现截图项目介绍论文大纲核心代码部分展示项目运行指导结论源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;同时还支持java、ThinkPHP、Node.js、Spring B…

作者头像 李华