【stm32】hal库学习笔记-DAC数模转换(超详细!)

【stm32】hal库学习笔记-DAC数模转换(超详细!)

DAC功能概述

DAC:将数字信号转换为模拟信号
在这里插入图片描述
并行式
分辨率 采样速率

DAC驱动函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Cube图形化配置

导入TFT_LCD ioc
设置DAC通道
在这里插入图片描述
更改ADC配置
在这里插入图片描述
优先级设置
在这里插入图片描述
更改TIM3配置
在这里插入图片描述
按键配置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
移入按键和触摸屏驱动文件

程序编写

/* USER CODE BEGIN Includes */
#include "lcd.h"
#include "keyled.h"
/* USER CODE END Includes */
/* USER CODE BEGIN 2 */lcd_init();lcd_show_str(10, 10, 24, "Demo15_1: DAC1 by soft trigger", RED);lcd_show_str(10, 40, 24, "Connect PA4 & PA5", RED);lcd_show_str(10, 70, 24, "DAC1 output to PA4", RED);lcd_show_str(10,100, 24, "ADC1-IN5 acquire PA5", RED);lcd_show_str(10,130, 24, "KeyUp   = DAC1 output ++", RED);lcd_show_str(10,160, 24, "KeyDown = DAC1 output --", RED);lcd_show_str(10,220, 24, "DAC Output =", RED);lcd_show_str(10,280, 24, "ADC Input =", RED);lcd_show_str(10,340, 24, "Voltage(mV) = ", RED);HAL_DAC_Start(&hdac, DAC_CHANNEL_1);uint32_t DacOutValue = 1000;HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, DacOutValue);lcd_show_num(50, 250, DacOutValue, 4, 24, RED);HAL_ADC_Start_IT(&hadc1);HAL_TIM_Base_Start(&htim3);/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){KEYS curKey = ScanPressedKey(KEY_WAIT_ALWAYS);if (curKey == KEY_UP) {DacOutValue += 50;} else if (curKey == KEY_DOWN) {DacOutValue -= 50;}HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, DacOutValue);lcd_show_num(50, 250, DacOutValue, 4, 24, RED);HAL_Delay(300);/* USER CODE END WHILE */
/* USER CODE BEGIN 4 */
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) {uint32_t val = HAL_ADC_GetValue(hadc);lcd_show_num(50, 310, val, 4, 24, RED);uint32_t Volt = val * 3300 >> 12;lcd_show_num(50, 370, Volt, 4, 24, RED);
}
/* USER CODE END 4 */

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/470974.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【web | CTF】BUUCTF [护网杯 2018] easy_tornado

天命:这题是框架性的漏洞,Python的web服务器框架,应该已经比较古老了 开局先看一下三个文件 简单阅读后会发现,这里存在文件包含漏洞,可以直接读取文件,但是有一个哈希值校验 一开始我以为是扫描文件后得到…

房屋租赁系统的Java实战开发之旅

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

用HTML5实现动画

用HTML5实现动画 要在HTML5中实现动画&#xff0c;可以使用以下几种方法&#xff1a;CSS动画、使用<canvas>元素和JavaScript来实现动画、使用JavaScript动画库。重点介绍前两种。 一、CSS动画 CSS3 动画&#xff1a;使用CSS3的动画属性和关键帧&#xff08;keyframes&…

【实战】一、Jest 前端自动化测试框架基础入门(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(一)

文章目录 一、前端要学的测试课1.前端要学的测试2.前端工程化的一部分3.前端自动化测试的例子4.前端为什么需要自动化测试&#xff1f;5.课程涵盖内容6.前置技能7.学习收获 二、Jest 前端自动化测试框架基础入门1. 自动化测试背景及原理前端自动化测试产生的背景及原理 2.前端自…

【题解】数的范围(二分模板)

笔记 if (check(mid)) L mid &#xff0c;则 mid L R 1 >> 1 if (check(mid)) R mid &#xff0c;则 mid L R >> 1 题目 #include<bits/stdc.h> using namespace std;int n, q; int a[100010]; int b[10010]; typedef pair<int, int> PII;v…

【十九】【C++】 priority_queue简单使用和仿函数

priority_queue文档介绍翻译 优先队列是一种容器适配器&#xff0c;专门设计成其中的第一个元素始终是根据某种严格的弱排序准则最大的元素。 这种上下文类似于堆&#xff0c;其中元素可以在任何时刻插入&#xff0c;而只能检索最大堆元素&#xff08;在优先队列中顶部的元素&a…

一周学会Django5 Python Web开发-项目配置settings.py文件-资源文件配置

锋哥原创的Python Web开发 Django5视频教程&#xff1a; 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计17条视频&#xff0c;包括&#xff1a;2024版 Django5 Python we…

(N-144)基于微信小程序在线订餐系统

开发工具&#xff1a;IDEA、微信小程序 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;vue、ElementUI、 Vant Weapp 服务端技术&#xff1a;springbootmybatisredis 本系统分微信小程序和…

搜索Agent方案

为啥需要整体方案&#xff0c;直接调用搜索接口取Top1返回不成嘛&#xff1f;要是果真如此Simple&Naive&#xff0c;New Bing岂不是很容易复刻->.-> 我们先来看个例子&#xff0c;前一阵火爆全网的常温超导技术&#xff0c;如果想回答LK99哪些板块会涨&#xff0c;你…

StarUML无法安装扩展的解决方案

StarUML无法安装扩展解决方案 版本&#xff1a;StarUML3.2.2 遇到问题 Unable to access the extension registry, Please try again later. 解决方案 第一步 https://docs.staruml.io/user-guide/managing-extensions#install-extension官网给了怎么手动安装扩展器的方法…

力扣1732. 找到最高海拔(前缀和)

Problem: 1732. 找到最高海拔 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 1.求取数组gain的大小 n n n; 2.定义一个大小为 n 1 n 1 n1的数组preSum; 3.先求取前 n n n个元素的前缀和&#xff0c;再最后单独处理preSum[n];其中preSum[n] preSum[n - 1] gai…