1、AD使用之STM32 内部温度检测使用

芯片:STM32F103C8

1、CubeMX中设置


2、自动生成代码后,打开main.c

    1、添加全局变量

            uint16_t AD_Value = 0;

    2、在while(1)中添加如下代码

    HAL_ADC_Start(&hadc1);  //启动ADC装换

      HAL_ADC_PollForConversion(&hadc1, 50); //表示等待转换完成,第二个参数表示超时时间,单位ms.
      /* Check if the continous conversion of regular channel is finished */ 

      if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc1), HAL_ADC_STATE_REG_EOC))

//就是判断转换完成标志位是否设置,HAL_ADC_STATE_REG_EOC表示转换完成标志位,转换数据可用

      {

          /*##-3- Get the converted value of regular channel  ######################*/

          AD_Value = HAL_ADC_GetValue(&hadc1);                          //读取ADC转换数据,数据为12位。

//根据公式转换温度,1400可自行设置,调整误差。AD_Value*3300/4096为将转换后的数据转化为电压,单位为mV,参考电压为3.3V

          printf("MCU Temperature : %.1f度\r\n",((AD_Value*3300/4096-1400)/2.5+25));   

      }

      HAL_Delay(1000);


测试结果:精度是不高,但了胜于无。


评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

河湾边的一亩三分地

来点实在的鼓励吧。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值