STM32CUBEIDE ADC内部温度值L476

adc不用DMA搞了一段时间,发现adc通道和内部一些传感器是连在一起的,之前也听人说过这个事情。今天我就实验了一下。
在网上查了一下这方面的资料,发现都是废话
分为两步

  1. 获取ADC原始值
  2. 换算ADC原始值与温度关系
    第一步,略。
    第二部,查看手册,手册中温度传感器部分说,厂家校准的值存在系统存储器中。可以直接对地址进行读取。
    在这里插入图片描述
    IDE读取方式
    我使用IDE连接后直接对地址进行查看,不知道相同型号的片子,内部值是不是相同。
    在这里插入图片描述
    还是要夸ST做的很用心的!点击绿色加号,添加查看地址后得到上图,这个样看不直观,调一下格式,一个字节一个字节的。
    在这里插入图片描述
    鼠标悬浮一会就会出现地址,我们可以从下图看到我们查看的地址值。
    在这里插入图片描述
    代码读取方式
uint16_t tem[10] = {0};
tem[0] = (uint16_t)*(uint32_t*)(0x1FFF75A8);

调试断点查看读取值

我们按照官方的地址得到了30℃时TS_CAL1 = 0x0402,110℃时TSCAL2 = 0x0513,于是得到二元一次方程组
TS_CAL1×k + b = 30
TS_CAL2×k + b = 110

解:略
之前我们得到我ADC原始值 -> 实际温度 = ADC原始值 × k + b
实验和天气预报的温度相差1度,官方手册中明确说:这个是很好的线性关系,看谁头铁当温度传感器用

STM32L151实战

我们直接查官方的两个手册,RM0038如下图
在这里插入图片描述
DS6876如下图
在这里插入图片描述
需要注意的几点

  1. 采样时间要长一些
  2. 数值计算时浮点数精准一点

附录

官方文档例子
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值