STM32F407ZG 检测环境温度 CubeIDE
Background Information
STM32F40x和STM32F41x芯片内部自动集成了温度传感器,连接到ADC1通道16。
串口1集成了CH340G芯片,所以可以直接和PA9,PA10通讯,用别的串口的话要额外买CH340模块,CH340的接收端连接单片机发送端,发送端连接单片机接收端。
在adc.c中MX_ADC1_Init中加入HAL_ADC_Start_IT(&hadc1); 如果把它加在main函数里要放在MX_ADC1_Init();之后。
重写callback函数。
ADC多通道采集一般用DMA,因为DMA有一个缓冲区,把ADC转换采集到的数据放进缓冲区。
IN1作为光敏电阻通道,IN16位温度传感器。
在DMA中添加ADC1,因为我们转换16位,而单片机为32位,所以data width选择half word(十六位)。要注意到时设置变量要设置uint16_t变量。然后DMA Continuous Requests Enabled. Scan Conversion Mode 使能。Coninuous Conversion Mode Enabled. End Of Conversion Selection等所有通道转换完再结束。在ADC_Regular_ConversionMode中选择两个通道,然后排序。温度排序1采样周期480Cycles, Channel1排序2采样周期480Cycles.记得不要勾选中断。
DMA Settings模式选Circular.
定义全局变量uint16_t ADC_Value[2] = {0};(长度为2的数组因为只有两个通道)
直接在main函数中调用HAL_ADC_Start_DMA(&hadc1, ADC_Value, 2);
Result:
Code:
/* USER CODE BEGIN Includes */
uint16_t ADC_Value = 0;
double V_sense = 0;
double C = 0;
double F = 0;
/* USER CODE END Includes */int main(void)
{/* USER CODE BEGIN 1 */uint8_t buff[1024] = {0};/* USER CODE END 1 */HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_ADC1_Init();MX_USART1_UART_Init();while (1){/* USER CODE BEGIN 3 */V_sense = ADC_Value/4096.0*3.3;C = (V_sense - 0.76)/0.0025 + 25.0;F = C * 1.8 + 32.0;sprintf(buff, "V = %.3f V C = %.3f degree F = %.3f degree\r\n", V_sense, C, F);HAL_UART_Transmit(&huart1, buff, strlen(buff), 5000);HAL_Delay(500);}/* USER CODE END 3 */
}/* USER CODE BEGIN 4 */
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{if(hadc == &hadc1){ADC_Value = HAL_ADC_GetValue(hadc);}
}
/* USER CODE END 4 */
STM32F407ZG 检测环境温度 CubeIDE相关推荐
- STM32F103ZE+SHT30检测环境温度与湿度(IIC模拟时序)
一.环境介绍 工程编译软件: keil5 温湿度传感器: SHT30 MCU : STM32F103ZET6 程序采用模块化编程,iic时序为一个模块(iic.c 和 iic.h),SHT30为一个 ...
- 【单片机毕业设计】【mcuclub-200】温度控制温度检测温控恒温控制恒温箱
设计简介: 项目名:基于单片机的温度控制的系统-标准版 单片机:STC89C52 功能: 1.通过DS18B20检测环境温度,当超过或低于上下限值时,控制继电器启动加热片或制冷片进行加热或制冷 2.通 ...
- 500kV某变电站红外测温 检测技术方案
一.概述 在中国经济建设取得显著的成就的背后,是强大的电网做支撑.在规模增大的同时,国家对电网系统的安全性.稳定性也提出了更加严格的标准,检修带电设备也是一项必不可少的任务,而变压器则是检测的重点对象 ...
- 基于单片机仓库温度检测系统设计
本设计采用STC89C51单片机为主控芯片,采用数字型温度传感器DS18B20检测环境温度,通过LCD1602实时显示温度值吗,并且能通过串口发送指令调节风扇转速.系统添加了几个按键,用户可以通过按键 ...
- 外设驱动库开发笔记20:BME280压力湿度温度传感器驱动
嵌入式产品开发中,我们常常会有检测环境温度.压力.湿度的需求.如果有一个集成有这3个传感器的元件,无疑将是很方便的.博世的BME280就能实现这一要求.在这一篇中我们将讨论BME280的驱动设计与实现 ...
- 基于51单片机和物联网的智能家居系统(ESP8266物联网模块)
前言 该智能家居系统以 STC89C52单片机为控制核心,结合 LCD1602 液晶显示屏.L298N电机驱动模块.光敏电阻,ESP8266WiFi模块,DS18B20温度计设计并实现了自动感光窗帘与 ...
- 基于数字电路交通灯信号灯控制系统设计-基于单片机病房温度监测与呼叫系统设计-基于STM32的无线蓝牙心电监护仪系统设计-基于STM32的智能蓝牙温控风扇控制设计-基于STM32的智能温室控制系统设计
1617基于数字电路交通灯信号灯控制系统设计(仿真电路,论文报告) 摘 要:交通灯控制系统在城市交通控制中发挥着重要的作用,本次课程设计就是以城市交通灯控制系统为背景的,主要通过运用学过的数字电路 ...
- 从现实世界的角度去理解计算机领域的知识
" 从现实世界的角度看计算机,可以帮助我们更清晰的学习计算机领域的知识. 本文试图用生活中常见的事物来解释计算机技术领域,让知识更通俗易懂 " 这篇文章的阅读对象是计算机专业在 ...
- 看不到工作组的其他计算机_就这一次,从现实世界的角度去理解计算机领域的知识(给新手)...
这篇文章的阅读对象是计算机专业在读及刚进入工作一年左右的的同学,文章措辞也许不太严谨,主要目的是为了让大家更容易理解. 01 便利店背后的"系统" "系统"这个 ...
最新文章
- 如何使我的Python程序休眠50毫秒?
- 号称史上最牛逼的几篇博客整理(python+java+js等)
- android Eclipse导入com.android.internal.R和layoutlib.jar报错解决方案
- 为什么要低温保存_超低温冰柜需求缺口加大,海尔海信长虹迎来利好
- drools dmn_Drools DMN最新开源引擎性能改进
- 自定义DataAnnotations
- java中什么是底层数据结构_JavaScript 对象的底层数据结构是什么
- 使用Excel4J获取Excel文件中的数据
- c语言自由存储区,C/C++ 内存分区以及自由存储区和堆的区别
- Django:报错 unsupported format character ‘Y‘ (0x59) at index 70
- UTCformat 转换UTC时间并格式化成本地时间
- jfinal 和bjui 常用前后交互方式
- 三人表决器实验报告总结_三人表决器实验报告
- 非线性控制4——李雅普诺夫稳定性理论
- 集成测试之自顶向下、自底向上、三明治集成
- IT面试:三十六计(10)入职前准备
- C#--DataTable的各种操作
- J2me之一——移动开发技术基础
- TP 框架解决Unknown column 'XXX' in 'where clause' 问题
- Desire(G7) 联通3g上网与彩信的设置方法