你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

悬赏:内部温度传感器HAL库得到电压值,如何得到12bit数字量

[复制链接]
wsyzxxnsjz 提问时间:2019-10-30 13:59 /
悬赏20ST金币未解决

cubemx +IAR。单片机型号:STM32L011K4.
hal库adc采样温度传感器的值。要求采集到的温度值,对绝对温度没有要求,必须要一个数字量(0~4096)。实际运行后得到一个电压值,室温约680.
请大神帮忙,怎么才能得到0~4096范围的温度数字量。
比较紧急,还请知道的大神们,能指点迷津。
一下是程序和截图
/* USER CODE BEGIN 0 */
unsigned int adc_v;
double adcx;
double temp;
/* USER CODE END 0 */


int main(void)
{
  HAL_Init();

  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART2_UART_Init();
  MX_ADC_Init();

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

  /* USER CODE END WHILE */

  /* USER CODE BEGIN 3 */
                HAL_ADC_Start(&hadc);
                adc_v = HAL_ADC_GetValue(&hadc);
               
  }

<
收藏 评论11 发布时间:2019-10-30 13:59

举报

11个回答
radio2radio 回答时间:2019-10-30 14:25:17
你这个680本身就是ADC转换出来的数据,相对于参考电压的(参考电压=4095),不知道为什么你认为他是电压值,ADC数据范围,如果不符合要求的范围,需要采用线性插值变换,参考:
https://www.stmcu.org.cn/module/forum/thread-618342-1-1.html

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

回答时间:2019-10-30 14:52:18
HAL_ADC_GetValue读取到的确实是数字量,读取的是ADC转换后的结果寄存器。因为参考电压不同,计算电压的结果不同。不知道楼主为什么说是读取到的是电压值呢?

评分

参与人数 1蝴蝶豆 +2 收起 理由
STMCU + 2

查看全部评分

toofree 回答时间:2019-10-30 23:53:37
以上两层楼说的对
但是这个系列的片子比较恶心。手册上说,得测出两个温度点的AD码值,然后按正比例算出当前温度。
wsyzxxnsjz 回答时间:2019-10-31 08:50:09
感谢各位的回复。
按我贴的程序去测量温度,温度从-40℃~105℃变化时,AD值变化范围约为500~720;变化范围太小,分辨率太低。
请问怎么将将ADC的参考电压配置为 该芯片的内部参考电压(1.2V)。这样来提高采集到的温度值范围和分辨率。(硬件不允许外接电压基准,还有我不需要温度的电压值,仅需要数字量)。
回答时间:2019-10-31 09:34:12
要考虑你温度传感器的电压范围,如果超过1.2V,使用1.2V的参考电压会溢出。
mylovemcu 回答时间:2019-10-31 09:49:15
wsyzxxnsjz 发表于 2019-10-31 08:50
感谢各位的回复。
按我贴的程序去测量温度,温度从-40℃~105℃变化时,AD值变化范围约为500~720;变化范 ...

外部电压变化太大  可以考虑采用内部1.2V基准
使用方法

内部参照电压VREFINT和ADC1_IN17相连  采集通道17的AD值AD1,在采集温度的AD值AD2,那么AD2的电压值就是V=AD2*1.2/AD1  根据电压值换算成温度值就可以了
如果要0-4096的变化值就是value=AD2*1.2*4096/AD1/3.3
wsyzxxnsjz 回答时间:2019-10-31 09:57:35
温度传感器的是芯片的内部温度传感器,看datasheet如下图:130℃ 的电压是670mv。应该不会溢出;hal库如何配置为内部1.2V的参考电压呢? cankaodianya.jpg
wsyzxxnsjz 回答时间:2019-10-31 10:05:52
mylovemcu 发表于 2019-10-31 09:49
外部电压变化太大  可以考虑采用内部1.2V基准
使用方法

谢谢!请问只能这样,自己去采集两个通道值,去计算吗?不能像msp430一样,直接通过语句把ADC的参考电压配置为内部参考电压。然后直接读取采样结果吗?
mylovemcu 回答时间:2019-10-31 10:17:22
wsyzxxnsjz 发表于 2019-10-31 10:05
谢谢!请问只能这样,自己去采集两个通道值,去计算吗?不能像msp430一样,直接通过语句把ADC的参考电压 ...

没用过这种操作
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版