文章目录

  • 一、前言
  • 二、CubeMX
    • 2.1、RCC
    • 2.2、SYS
    • 2.3、ADC
    • 2.4、Clock Configuration
  • 四、代码
    • 4.1、adc.c
    • 4.2、adc.h
    • 4.3、main.h
    • 4.4、main.c
  • 五、DEBUG
    • 5.1、Debug (printf)Viewer
    • 5.2、观察实时变量
  • 六、细节补充
    • 6.1、ADC的工作频率注意事项

一、前言


CubeMX配置ADC的梳理笔记:STM32H743+CubeMX-梳理MPU的设置
STM32H743内部集成了一个温度传感器,可以使用ADC3_INP18通道测量CPU当前的温度。

官方手册提供计算公式,值得注意的是,该公式成立的条件是参考电压为3.3V!!!!!!!!!!!!!
我使用的是硬石科技的H7开发板,外部参考电压是3.3V。如果芯片的外部参考电压是2.5V的话,我暂时也找不到方法计算MCU的温度!!!!!!!!!!!!!

二、CubeMX


2.1、RCC

2.2、SYS

2.3、ADC


2.4、Clock Configuration


四、代码


4.1、adc.c

函数void MX_ADC3_Init(void)下添加如下用户代码。

最后,在adc.c文件最底部编写函数float get_CPU_Temperature(uint32_t Timeout)。

float get_CPU_Temperature(uint32_t Timeout)
{uint16_t TS_CAL1;uint16_t TS_CAL2;HAL_ADC_Start(&hadc3);  /* 启动ADC3的转换 */if(HAL_OK == HAL_ADC_PollForConversion(&hadc3,Timeout))  /* 等待ADC3的转换,超时时间Timeout */{Temp_DC = HAL_ADC_GetValue(&hadc3);}else{printf("ADC Conversion failed! \n");}/* 根据参考手册给的公式计算温度值 */TS_CAL1 = *(__IO uint16_t *)(0x1FF1E820);TS_CAL2 = *(__IO uint16_t *)(0x1FF1E840);Temp_oC = ((110.0f - 30.0f) / (TS_CAL2 - TS_CAL1)) * (Temp_DC - TS_CAL1) + 30.0f;return Temp_oC;
}

4.2、adc.h

4.3、main.h

4.4、main.c


五、DEBUG


5.1、Debug (printf)Viewer

顺利获取CPU的温度信息。

5.2、观察实时变量

六、细节补充


6.1、ADC的工作频率注意事项

网络上流传着ADC的工作频率不能超过80M,否则会不准。我认为大家可以注意一下这个问题。

STM32H743+CubeMX-使用ADC(16bit分辨率)模数转换器读取CPU的温度(串行方式)相关推荐

  1. STM32H743+CubeMX-ADC(16bit分辨率)+DMA采样三路模拟量(并行),没过采样。

    文章目录 一.前言 二.CubeMX 2.1.RCC,SYS,Clock Configuration 2.2.CORTEX_M7(cache与MPU) 2.3.ADC3 Mode and Config ...

  2. 74HC165串行读取的信号全是ff

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.74HC165 二.产生问题 前言 一般使用74HC165都是读取并行接口转成串行输入,使用这个时也会遇到一些问题 ...

  3. 脚本每隔2秒读取CPU温度及频率

    1.读取cpu的温度 cpu0: cat /sys/class/thermal/thermal_zone0/tempcpu1: cat /sys/class/thermal/thermal_zone1 ...

  4. 【STM32F429开发板用户手册】第33章 STM32F429的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第33章       STM32F429的SPI总线应用之驱动DA ...

  5. 【STM32H7教程】第74章 STM32H7的SPI总线应用之驱动DAC8563(双通道,16bit分辨率,正负10V)

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第74章       STM32H7的SPI总线应用之驱动DA ...

  6. stm32h7高速通信_【STM32H7教程】第75章 STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)...

    第75章       STM32H7的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V) 本章节为大家讲解标准SPI接线方式驱动模数转换器DAC8501,制作了中断和DMA两种 ...

  7. 【STM32F429开发板用户手册】第34章 STM32F429的SPI总线应用之驱动DAC8501(双路输出,16bit分辨率,0-5V)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=93255 第34章       STM32F429的SPI总线应用之驱动DA ...

  8. STM32 HAL库 CUBEMX配置 ADC采集

    文章目录 STM32 HAL库 CUBEMX配置 ADC采集 软硬件型号 1.单通道不定时任意时刻采集信号 CUBEMX配置 代码添加 2.单通道ADC采集+DMA传输 CUBEMX添加配置 代码添加 ...

  9. STM32开发(14)----CubeMX配置ADC

    CubeMX配置ADC 前言 一.什么是ADC? 二.实验过程 1.单通道ADC采集 STM32CubeMX配置 代码实现 2.多通道ADC采样(非DMA) STM32CubeMX配置 代码实现 3. ...

最新文章

  1. Mac OS X Yosemite安装盘U盘制作
  2. Turn off UAC, Windows Firewall, Set time zone
  3. 3.1.1 存储器的分类(半导体-磁芯-磁表面-光存储-ROM-RAM-永久非永久-内存-外存-Cache)
  4. 确保对象的唯一性——单例模式
  5. java jnlp被阻止_JNLP应用程序Web服务访问被拒绝 - java.io.FilePermission
  6. 光纤收发器一定要成对使用吗?
  7. Zend Framework(一)概述介绍
  8. python读单行文本求平均值_如何从文本文件python中的数字列表中找到平均值
  9. clientHeight.offsetHeight.scrollHeight等的区别
  10. Qt工作笔记-视图/模型以及过滤代理模型的使用
  11. 微信月活9亿的高效运维之路
  12. 【快速入门Linux】7_Linux命令—使用su命令切换用户出现认证失败
  13. numpy 加速 矩阵相加_图解入门 NumPy !
  14. JAVA指定范围生成随机数
  15. android studio打包aar心得
  16. python对于一元线性回归模型_Python|机器学习-一元线性回归
  17. 如何根据一张照片判断出女孩住在几层楼?
  18. 电子邮件 e-mail原理
  19. Apollo学习笔记(6)module control
  20. mysql用户主机设置密码_MySQL用户账号管理(添加、删除、限制、设置密码、远程访问)...

热门文章

  1. python paramiko使用
  2. Swift3.0 键盘高度监听获取
  3. Meteor项目实战 -- Next 0.0.2
  4. 配置环境JDK Tomcat Maven
  5. 互联网IT行业,未来十年这些编程语言将大展宏图,学它们准不会错!
  6. 大一萌新看过来,“这样”学C++,让你不再迷茫!
  7. 如何评价 IBM 收购 Blue Box 集团
  8. 联信高效的数据传输机制
  9. 当然我这里讲的都是与数据库有关的字符串拼凑
  10. 网络飞鸽传书容易犯的错