stm32Cubemx实用篇(三):DAC电压输出和ADC电压检测以及内部温度传感器测温

本章将介绍使用stm32Cubemx软件配置DAC电压输出和ADC电压检测。最终将两个引脚连接起来通过一个ADC功能引脚测量另一个DAC输出引脚的电压。并通过串口打印出相应信息。


硬件平台:Stm32H743IIT6 软件:StmcubemxV6.0.1 、MDK5 cubemx下载地址: https://www.st.com/stm32cubemx

文章目录

  • stm32Cubemx实用篇(三):DAC电压输出和ADC电压检测以及内部温度传感器测温
  • 一、Cubemx工程配置
  • 二、实验
    • 1.ADC采集电压函数
    • 2.主函数功能
  • 三、内部温度传感器实验
    • 1.参数设置
    • 2.函数功能实现

提示:以下是本篇文章正文内容,下面案例可供参考

一、Cubemx工程配置

1、时钟配置

2、DAC设置

具体设置如下图所示:

3、ADC设置

这里需要注意的一点是:Sampling Time(采样周期)设置越长采集到的电压越准,同时耗费的时间越长。可以根据需要选择自己需要的周期。

具体设置如下图所示:

二、实验

1.ADC采集电压函数

需要注意的一点:打开ADC后不能立即读取,需要延时一段时间 ADC读取步骤: 1、打开ADC中断 2、延时一段时间 3、读取ADC值 4、停止ADC中断

代码如下(示例):

uint16_t Get_ADC_Value(ADC_HandleTypeDef hadc,uint8_t times)
{if(times>=30){return 0;}uint16_t   adc_value_final=0;uint32_t adc_value=0;HAL_ADC_Start_IT(&hadc);   //打开ADC1HAL_Delay(10);   //打开ADC后不能立即读取,需要延时一段时间for(int i=0;i<times;i++){adc_value += HAL_ADC_GetValue(&hadc);  }adc_value_final=(uint16_t)(adc_value/times);HAL_ADC_Stop_IT(&hadc);  //关闭ADC1return adc_value_final;
}

2.主函数功能

这里在主函数增加了按键扫描函数,按键1每按下一次DAC输出电压就增加0.1V,按键2每按下一次DAC输出电压就减少0.1V。另外还增加了串口printf函数,打印出DAC输出电压和ADC读取到的电压值。

代码如下(示例):

 key=KEYPRESS();    //按键扫描if(key==1)//按键1按下{if(temp<=3.2f){temp+=0.1f;HAL_DAC_SetValue(&hdac1,DAC_CHANNEL_1,DAC_ALIGN_12B_R,(uint32_t)(temp*4096/3.3f));  printf("Set Voltage:%d=%.1fV\n",(uint32_t)(temp*4096/3.3f),temp);}     adc_value=Get_ADC_Value(hadc1,10);printf("ADCVALUE = %d, ADCVALUE(V) = %fV\r\n",adc_value,adc_value*3.3/65535);  }if(key==2)//按键2按下{if(temp>=0.1f){HAL_DAC_SetValue(&hdac1,DAC_CHANNEL_1,DAC_ALIGN_12B_R,(uint32_t)(temp*4096/3.3f));  printf("Set Voltage:%.1f\n",temp);}     adc_value=Get_ADC_Value(hadc1,10);printf("ADCVALUE = %d, ADCVALUE(V) = %fV\r\n",adc_value,adc_value*3.3/65535);  }

最终可以在串口看到正确的实验现象,如下图:

三、内部温度传感器实验

1.参数设置

注意:不要忘记打开ADC3的通道中断

2.函数功能实现

首先要进行ADC校准以及要打开ADC通道。

代码如下(示例):

  /* USER CODE BEGIN 2 *///校准ADCHAL_ADCEx_Calibration_Start(&hadc3,ADC_CALIB_OFFSET,ADC_SINGLE_ENDED);  //打开ADC3HAL_ADC_Start(&hadc3);
/* USER CODE END 2 */ }

其次进行AD采集以及开始运用公式进行转换。
代码如下(示例):

HAL_ADC_Start(&hadc3);
adc_v = HAL_ADC_GetValue(&hadc3);
adcx = (110.0-30.0)/(*(unsigned short*)(0x1FF1E840) - *(unsigned short*)(0x1FF1E820));
temp = adcx*(adc_v - *(unsigned short*)(0x1FF1E820))+30;
//temp为最终的温度值

最终温度测试结果如下:


结束!!!希望小伙伴们多多关注。

stm32Cubemx实用篇(三):DAC电压输出和ADC电压检测以及内部温度传感器测温相关推荐

  1. stm32Cubemx实用篇(四):SD卡读写实验

    stm32Cubemx实用篇(四):SD卡读写实验 本章将介绍使用stm32Cubemx软件配置SD卡读写.并通过串口打印出相应信息. 硬件平台:Stm32H743IIT6 +16GB TF卡 软件: ...

  2. 杰理AC632N—ADC电压检测

    ADC电压检测-Note2 //**************app_power_manage.c**************// u32 my_adc_get_voltage(u32 ch); voi ...

  3. 基于51单片机及PCF8591芯片的ADC电压检测

    前述: QQ:961209458 V X:F9986858 这个是一个简易课设作品. 单片机介绍: 8位CPU·4kbytes程序存储器(ROM) (52为8K) 128bytes的数据存储器(RAM ...

  4. Mendix开发介绍实用篇(三)

    继续<实用篇二>的内容: 6. 创建Folder 7. 设置权限 展开Module,双击Security,打开Module security Type"Security" ...

  5. (实测可用)STM32CubeMX教程-STM32L431RCT6开发板研究(ADC)

    一.开发板平台简介: 1.开发板资源简介 (1)开发板主芯片型号:STM32L431RCT6 (2)开发板主芯片封装:LQFP-64_10x10x05P (3)开发板主芯片内核:ARM® Cortex ...

  6. iOS直播实用篇(手把手教)

    一.简述总体内容 1.直播流程介绍 2.Mac搭建nginx+rtmp服务器(模拟推流拉流) 3.简单的集成推流拉流(实用篇) 4.好的博客推荐 二.直播流程介绍 1.简单的流程图 简单的流程图 2. ...

  7. 学习笔记:SpringCloud 微服务技术栈_实用篇②_黑马旅游案例

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 前言 学习视频链接 SpringCloud + RabbitMQ + Docker + Redis + 搜 ...

  8. echarts实用篇(一)——饼状图

    echarts实用篇(一)--饼状图 从官网上我们可以看到通常用到的有这几类: 常规饼状图 环形图 嵌套环形图 纹理饼图 南丁格尔玫瑰图 定制饼状图 下面来看看各类的基本做法,直接使用官网上的例子. ...

  9. SpringCloud实用篇01

    SpringCloud实用篇资料下载 1.认识微服务 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构.这些架构之间有怎样的差别呢? 1.0.学习目标 ...

最新文章

  1. vue indev.html,webpack多入口热加载很慢
  2. 笨方法python3_“笨方法”学Python3,习题 34 。
  3. 变频器输出功率_工业电气设计|变频器的输出功率该如何选择?
  4. 胶囊路由_评论:胶囊之间的动态路由
  5. mysql 帐号开启远程_两大步骤教您开启MySQL 数据库远程登陆帐号
  6. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第7篇]随机性如何辅助计算和什么是BPP类问题
  7. Node.js中事件的循环
  8. LeetCode 4 Median of Two Sorted Arrays
  9. Python中的相对文件路径的调用
  10. 如何在Linux中使用history命令
  11. 计算机视觉必备框架!Opencv系列学习实战
  12. spring4笔记----依赖注入的两种形式
  13. WINDOWS上svn服务器自动部署
  14. python arduino 蓝牙_树莓和Arduino之间的蓝牙通讯
  15. 家庭局域网_分析 | 如何查询局域网内在用的IP地址?
  16. 16个值得个人站长做的广告联盟[转自cnzz]
  17. linux系统下u盘变成只读模式如何修改
  18. Android返回键
  19. 【单片机】自学单片机第01天|单片机简介、内部资源、最小系统
  20. 【语音之家】AI产业沙龙—语音技术在贝壳的应用

热门文章

  1. 调研人工智能技术在无人驾驶汽车中的应用
  2. 传感器技术—霍尔传感器(学习笔记九 补充)
  3. 2022值得入手的运动装备有哪些?618超值得买合集
  4. IDDPM原理和代码剖析
  5. Windows下TCP套接字的一些细枝末节问题
  6. ASM添加磁盘-ASMLIB
  7. 要称王,先做行业破坏者
  8. 霍尔开关在智能阀门位移器上的应用
  9. 计算机多媒体对语文教学的提高,语文教学中多媒体教学运用心得
  10. uvc摄像头代码解析4