news 2026/6/10 16:27:08

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/9 19:26:08

Shutter Encoder终极指南:专业视频编码工具快速上手

想要高效处理视频文件却苦于复杂的编码软件&#xff1f;Shutter Encoder正是你需要的解决方案。这款基于Java开发的专业视频编码工具&#xff0c;采用FFmpeg作为核心引擎&#xff0c;为视频创作者和多媒体开发者提供了超过50种视频格式转换的强大功能。无论你是视频编辑新手还是…

作者头像 李华
网站建设 2026/6/10 16:11:18

wvp-GB28181-pro Docker部署终极指南:从零到生产环境快速搭建

wvp-GB28181-pro Docker部署终极指南&#xff1a;从零到生产环境快速搭建 【免费下载链接】wvp-GB28181-pro 项目地址: https://gitcode.com/GitHub_Trending/wv/wvp-GB28181-pro wvp-GB28181-pro是一款功能强大的国标视频平台&#xff0c;支持GB/T28181-2016协议&…

作者头像 李华
网站建设 2026/6/9 18:06:29

yt-dlp-gui终极指南:Windows视频下载神器完全解锁

yt-dlp-gui终极指南&#xff1a;Windows视频下载神器完全解锁 【免费下载链接】yt-dlp-gui Windows GUI for yt-dlp 项目地址: https://gitcode.com/gh_mirrors/yt/yt-dlp-gui 还在为复杂的命令行下载工具头疼吗&#xff1f;yt-dlp-gui为你带来简单快速的视频下载体验&a…

作者头像 李华
网站建设 2026/6/3 5:46:37

华为OD机试真题 - 报文重排序 (C++ Python JAVA JS GO)

报文重排序 2025华为OD机试 - 华为OD上机考试 100分题型 华为OD机试真题目录点击查看: 华为OD机试真题题库目录|机考题库 + 算法考点详解 题目描述 对报文进行重传和重排序是常用的可靠性机制,重传缓中区内有一定数量的子报文,每个子报文在原始报文中的顺序已知,现在需要…

作者头像 李华
网站建设 2026/6/4 15:51:02

OpenKM文档管理系统完整部署指南:从零到一的实战配置

OpenKM文档管理系统完整部署指南&#xff1a;从零到一的实战配置 【免费下载链接】document-management-system OpenKM is a Open Source Document Management System 项目地址: https://gitcode.com/gh_mirrors/do/document-management-system 在当今数字化办公环境中&…

作者头像 李华
网站建设 2026/6/8 8:19:08

网易云音乐智能听歌助手:5分钟解锁个性化推荐算法

网易云音乐智能听歌助手&#xff1a;5分钟解锁个性化推荐算法 【免费下载链接】netease-cloud-fastplay 网易云音乐快速听歌&#xff0c;自定义听歌风格&#xff0c;一键刷听歌次数 项目地址: https://gitcode.com/gh_mirrors/ne/netease-cloud-fastplay 还在为网易云音…

作者头像 李华