当前位置: 首页 > news >正文

第十二章:温度传感器拓展模块

1.资源介绍

Tem

MCU

SCL

PA12

SDA

PA11

2.STM32CuBeMX配置

3.程序编写

#include "main.h"
#include "i2c.h"
#include "usart.h"
#include "gpio.h"/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include <stdio.h>
/* USER CODE END Includes *//* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD *//* USER CODE END PTD *//* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
/* USER CODE END PD *//* Private macro -------------------------------------------------------------*/
/* USER CODE BEGIN PM *//* USER CODE END PM *//* Private variables ---------------------------------------------------------*//* USER CODE BEGIN PV *//* USER CODE END PV *//* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
/* USER CODE BEGIN PFP *//* USER CODE END PFP *//* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
int fputc(int ch,FILE *p)
{HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,0xffff);return ch;
}
float STS30_Proc(void)                                                                              //温度计程序
{uint8_t tem_data[2];//写入数据缓冲区 float tem;                                                        tem_data[0] = 0x24;tem_data[1] = 0x0B;HAL_I2C_Master_Transmit(&hi2c2, 0x4A<<1, tem_data, 2, 10);//开启温度转化 为下一次运行准备数据HAL_Delay(100);HAL_I2C_Master_Receive(&hi2c2, (0x4A << 1)+1, tem_data, 2, 10);//初始化时开启了一次温度转化 现在来读取 或者之前运行过的温度转化 现在读取tem = (float)((tem_data[0] << 8 | tem_data[1]) * 175.0 / 65535 - 45); //计算并返回温度结果return tem;
}
/* USER CODE END 0 *//*** @brief  The application entry point.* @retval int*/
int main(void)
{/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit */MX_USART2_UART_Init();/* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_I2C2_Init();/* USER CODE BEGIN 2 */printf("this is tem init\r\n");/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){STS30_Proc();printf("tem:%.2f\r\n",STS30_Proc());HAL_Delay(500);/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */
}

http://www.lqws.cn/news/537751.html

相关文章:

  • 《汇编语言:基于X86处理器》第5章 过程(1)
  • LeetCode 2311.小于等于 K 的最长二进制子序列:贪心(先选0再选1)-好像还是比灵神写的清晰些
  • Python打卡:Day36
  • 永磁无刷电机旋转原理
  • 数据结构进阶 第六章 树与二叉树
  • 15.三数之和
  • 教程 | 一键批量下载 Dify「Markdown 转 Docx」生成的 Word 文件(附源码)
  • GraphQL注入 -- GPN CTF 2025 Real Christmas
  • Spring Boot高并发 锁的使用方法
  • 与 AI 聊天更顺畅:cat_code.py
  • [深度学习][python]yolov13+bytetrack+pyqt5实现目标追踪
  • 数据结构进阶 - 第九章 排序
  • Docker安装Mysql、配置文件挂载、修改Mysql编码
  • C2远控篇CC++SC转换格式UUID标识MAC物理IPV4地址减少熵值
  • 什么是谓词下推?
  • leetcode:50. Pow(x, n)(python3解法,数学相关算法题)
  • 苍穹外卖day3--公共字段填充+新增菜品
  • 桌面小屏幕实战课程:DesktopScreen 11 SPI 水墨屏
  • 超声波清洗机相对于传统清洗方法有哪些优势?
  • 博客系统测试报告
  • 互联网大厂Java求职面试:RAG系统架构设计与实战
  • 通达信 股道主力资金 幅图分析系统
  • 攻防世界-MISC-4-2
  • vue3 定时刷新
  • Python-8-模块和第三方库
  • 鸿蒙分布式数据管理:构建无缝跨设备体验的核心技术
  • php项目部署----------酒店项目
  • 《HarmonyOSNext应用崩溃自救指南:零数据丢失的故障恢复黑科技》
  • ubuntu20.04如何给appImage创建快捷方式
  • AMS流媒体服务器-新版(h265-flv)