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

蓝桥杯物联网竞赛_STM32L071_10_温度传感器扩展模块

原理图:

温度传感器原理图:


其中芯片可以通过SCL和SDA引脚通过I2C通信向温度传感器指定地址获取温度的模拟量
再利用公式将模拟量转换成相应温度即可

实验板接口原理图:

模拟量转相应温度公式:

CubMx配置:

Keil配置:

Function:

#include"Function.h"#include"oled.h"#include"i2c.h"voidOLED_Write(unsignedchartype,unsignedchardata){unsignedcharWrite_Data[2];Write_Data[0]=type;Write_Data[1]=data;HAL_I2C_Master_Transmit(&hi2c3,0x78,Write_Data,2,0xff);}voidFunction_OledEnable(unsignedcharms){HAL_GPIO_WritePin(OLED_POWER_GPIO_Port,OLED_POWER_Pin,GPIO_PIN_RESET);HAL_Delay(ms);OLED_Init();}floatFunction_GetTemp(void){unsignedchardata[3];data[0]=0x24;data[1]=0x0B;// 地址HAL_I2C_Master_Transmit(&hi2c1,0x94,data,2,10);// 通过I2C传输向特定地址获取温度HAL_Delay(5);HAL_I2C_Master_Receive(&hi2c1,0x95,data,3,10);// 获取到数值return(float)(data[0]<<8|data[1])*175.0/65535-45;// 获取的数值是16位 << 8 等效于 * 2 ^ 8}
#ifndef__Function__#define__FUNCTION__voidOLED_Write(unsignedchartype,unsignedchardata);voidFunction_OledEnable(unsignedcharms);floatFunction_GetTemp(void);#endif

main:

#include"main.h"#include"i2c.h"#include"gpio.h"#include"oled.h"#include"Function.h"voidSystemClock_Config(void);intmain(void){HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_I2C1_Init();MX_I2C3_Init();Function_OledEnable(50);while(1){OLED_ShowNumber(0,0,12345,5,16);OLED_ShowNumber(0,2,(uint32_t)Function_GetTemp(),3,16);}}voidSystemClock_Config(void){RCC_OscInitTypeDef RCC_OscInitStruct={0};RCC_ClkInitTypeDef RCC_ClkInitStruct={0};RCC_PeriphCLKInitTypeDef PeriphClkInit={0};__HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);RCC_OscInitStruct.OscillatorType=RCC_OSCILLATORTYPE_HSI;RCC_OscInitStruct.HSIState=RCC_HSI_ON;RCC_OscInitStruct.HSICalibrationValue=RCC_HSICALIBRATION_DEFAULT;RCC_OscInitStruct.PLL.PLLState=RCC_PLL_ON;RCC_OscInitStruct.PLL.PLLSource=RCC_PLLSOURCE_HSI;RCC_OscInitStruct.PLL.PLLMUL=RCC_PLLMUL_4;RCC_OscInitStruct.PLL.PLLDIV=RCC_PLLDIV_2;if(HAL_RCC_OscConfig(&RCC_OscInitStruct)!=HAL_OK){Error_Handler();}RCC_ClkInitStruct.ClockType=RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;RCC_ClkInitStruct.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK;RCC_ClkInitStruct.AHBCLKDivider=RCC_SYSCLK_DIV1;RCC_ClkInitStruct.APB1CLKDivider=RCC_HCLK_DIV1;RCC_ClkInitStruct.APB2CLKDivider=RCC_HCLK_DIV1;if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct,FLASH_LATENCY_1)!=HAL_OK){Error_Handler();}PeriphClkInit.PeriphClockSelection=RCC_PERIPHCLK_I2C1|RCC_PERIPHCLK_I2C3;PeriphClkInit.I2c1ClockSelection=RCC_I2C1CLKSOURCE_PCLK1;PeriphClkInit.I2c3ClockSelection=RCC_I2C3CLKSOURCE_PCLK1;if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit)!=HAL_OK){Error_Handler();}}voidError_Handler(void){__disable_irq();while(1){}}

效果:

http://www.jsqmd.com/news/531806/

相关文章:

  • flash-attention代码逻辑
  • 基于S7-200 PLC与MCGS组态的灌装贴标生产线系统:后发送产品包括梯形图接线图原理图及...
  • FreeRTOS实战:用CubeMX在STM32上模拟一个智能家居控制面板(任务通知+事件标志组)
  • 蓝桥杯物联网竞赛_STM32L071_2_继电器控制
  • 2025-2026年高新技术企业认定公司推荐:集团企业多主体申报口碑服务商对比 - 品牌推荐
  • 从散乱点到完美圆:最小二乘法圆拟合在工业视觉检测中的实战应用(Python/OpenCV版)
  • MixFormer vs FairMOT:深度对比两种目标跟踪方案的性能与适用场景
  • 串口通信中浮点数据的共用体与结构体转换技术
  • 如何快速部署ChatFiles:面向新手的文档聊天机器人完整指南
  • 2026成都隔油池清掏优质服务机构推荐:成都隔油池清理公司/物业化粪池清掏/物业隔油池清掏/酒店隔油池清掏/隔油池清理维保公司/选择指南 - 优质品牌商家
  • 从零构建XSS接收平台:实战打Cookie与深度防御剖析
  • Gemini vs Grok镜像站技术拆解对比:视觉派与实时派的正面交锋
  • 深度学习模型压缩终极指南:TinyDNN剪枝、量化、蒸馏实战
  • 突破STM32内存限制:用SRAM动态分配大数组的3种方法(含__attribute__语法对比)
  • Spring开发系列教程(12)——AOP避坑指南
  • Qwen3-Reranker-0.6B在VSCode中的开发与调试
  • 打破设备壁垒:Win/Mac/Linux三端虚拟局域网组网全攻略,解锁跨设备协作新范式
  • 2026年高新技术企业认定公司推荐:初创公司资质提升口碑机构及用户真实反馈 - 品牌推荐
  • 如何判断Tclsh是32位还是64位的
  • jsDelivr数据库性能优化终极指南:10个提升CDN查询速度的技巧
  • granite-4.0-h-350m中文微调指南:Ollama本地大模型定制化训练教程
  • Vibe Coding,是怎么「玩废」程序员的?
  • OpenClaw配置优化:百川2-13B量化模型推理速度提升30%技巧
  • 从零到一:在Cursor与VSCode中深度集成DeepSeek的实战手册
  • 2026年AI营销智能体公司推荐:企业品牌增长困境下高价值智能决策与内容生成服务商 - 品牌推荐
  • 智能投资决策系统:从市场混沌到决策清晰的技术革命
  • springboot+vue项目如何集成onlyoffice开源文档组件
  • Easy SMS消息模板系统详解:灵活应对不同业务场景
  • 2026年AI营销智能体公司推荐:营销全流程自动化热门服务商与真实反馈对比 - 品牌推荐
  • 前端大文件分线程上传