IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32H7使用硬件I2C读取LM75温度 -> 正文阅读

[嵌入式]STM32H7使用硬件I2C读取LM75温度

前言

网上能搜索到关于STM32的I2C总线文章基本都是使用软件模拟的方式实现的,这应该是F1系列留下的问题,在F4、H7系列中应该已经排除了。使用软件模拟的方式实现I2C通讯的问题在于通讯的速度和效率比较低。

本文就以CubeMX+HAL库+硬件I2C的方式,去实现一个最普通的LM75BD温度IC的读取,I2C使用阻塞式通讯,日后再更改为DMA方式。


一、STM32CubeMx的配置

LM75BD的原理图如下:

?

?通讯地址根据手册的说明,在A2、A1、A0均拉高的情况下,读地址为0x9F。

?

?I2C通讯使用了第I2C3,通讯速率100K,不开中断,两个管脚均为开漏上拉。

?

二、代码实现

LM75BD的温度寄存器地址为0,数据为16位,其中低5位为无效数据,最高位为符号,所以在代码中要先右移5位,再做处理。

?

?代码如下:

/*
*********************************************************************************************************
*	函 数 名: bsp_Lm75bdReadTemp
*	功能说明: 从LM75BD中读取温度数据
*	形    参: 无
*	返 回 值: 浮点温度值
*********************************************************************************************************
*/
float bsp_Lm75bdReadTemp(void)
{
	HAL_StatusTypeDef status = HAL_OK;
	
	uint8_t RawVal[2];//元数据
	int16_t RawTemp;
	float Lm75Temp;
		
	status=HAL_I2C_Mem_Read(LM75_I2C_Handle,LM75BD_ADDRESS,0, I2C_MEMADD_SIZE_8BIT, RawVal, 2,1000);
	
	if (status!=HAL_OK)//读取失败
		return 0;
	else
	{	
		RawTemp=RawVal[0]<<8 | RawVal[1];
		RawTemp= RawTemp>>5;
		if((RawTemp & 0x0400) != 0 )//负温度
			Lm75Temp = ((float)(-((~(RawTemp & 0x03FF))+1)))*0.125;		
		else //正温度
			Lm75Temp = 0.125*(float)RawTemp;
		return Lm75Temp;
	}

}

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-10-16 19:48:03  更:2021-10-16 19:48:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:40:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码