【stm32】DAC实验(stm32f4hal库)

一、DAC简介

1、DAC

        数字到模拟转换器(DAC)是一种电子设备,用于将数字信号转换为模拟信号。它通常用于将数字数据转换为模拟信号,以便在模拟电路中进行处理。DAC在许多领域都有广泛的应用,如音频设备、通信系统、仪器仪表等。通过DAC,数字系统可以与模拟电路交互,实现数字信号到模拟信号的转换。

2、DAC的特性参数

        分辨率(Resolution):指的是DAC能够产生的不同输出电压或电流的级数,通常以比特(Bit)表示。更高的分辨率意味着更精细的输出。

        量程(Full Scale Range):指的是DAC能够输出的最大和最小电压或电流范围。

        精度(Accuracy):指的是DAC输出值与理想值之间的误差。通常用百分比误差或最小刻度值来表示。

        电压和电流输出:DAC可以输出电压或电流信号,具体取决于应用需求。

        更新速度(Update Rate):指的是DAC在单位时间内可以更新输出值的次数。

        温度稳定性(Temperature Stability):DAC在不同温度下输出稳定性的能力。

        线性度(Linearity):指DAC输出值与输入值之间的直线关系程度。较高的线性度表示输出值与输入值更接近直线关系。

        功耗(Power Consumption):DAC的工作时所消耗的电能。

3、DAC 通道框图

二、stm32f4——DAC寄存器介绍

1、控制寄存器 (DAC_CR)

偏移地址: 0x00
复位值: 0x0000 0000

2、软件触发寄存器 (DAC_SWTRIGR)

偏移地址: 0x04
复位值: 0x0000 0000

3、1 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R1)

偏移地址: 0x08
复位值: 0x0000 0000

4、1 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L1)

偏移地址:0x0C
复位值: 0x0000 0000

5、1 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R1)

偏移地址: 0x10
复位值: 0x0000 0000

6、2 通道 12 位右对齐数据保持寄存器 (DAC_DHR12R2)

偏移地址: 0x14
复位值: 0x0000 0000

7、2 通道 12 位左对齐数据保持寄存器 (DAC_DHR12L2)

偏移地址: 0x18
复位值: 0x0000 0000

8、2 通道 8 位右对齐数据保持寄存器 (DAC_DHR8R2)

偏移地址: 0x1C
复位值: 0x0000 0000

9、 DAC 12 位右对齐数据保持寄存器 (DAC_DHR12RD)

偏移地址: 0x20
复位值: 0x0000 0000

10、 DAC 12 位左对齐数据保持寄存器 (DAC_DHR12LD)

偏移地址: 0x24
复位值: 0x0000 0000

11、 DAC 8 位右对齐数据保持寄存器 (DAC_DHR8RD)

偏移地址: 0x28
复位值: 0x0000 0000

12、1 通道数据输出寄存器 (DAC_DOR1)

偏移地址: 0x2C
复位值: 0x0000 0000

13、2 通道数据输出寄存器 (DAC_DOR2)

偏移地址: 0x30
复位值: 0x0000 0000

14、状态寄存器 (DAC_SR)

偏移地址: 0x34
复位值: 0x0000 0000

三、HAL库相关API

1、HAL_DAC_Init()

功能:配置DAC工作状态

2、HAL_DAC_MspInit()

功能:配置NVIC、GPIO初始化代码

3、HAL_DAC_ConfigChannel()

功能:配置DAC相应通道的相关参数

4、HAL_DAC_Start

功能:启动DAC

5、HAL_DAC_SetValue()

功能:设置输出模拟量

6、HAL_DAC_GetValue()

功能:读取通道输出数字量

四、示例代码

1、DAC输出指定电压

#include "DAC.h"DAC_HandleTypeDef DAC1_Initstructure;void DAC_Init(void)
{DAC1_Initstructure.Instance = DAC;HAL_DAC_Init(&DAC1_Initstructure);DAC_ChannelConfTypeDef DAC_Channel;DAC_Channel.DAC_OutputBuffer = DAC_TRIGGER_NONE;//DAC触发源DAC_Channel.DAC_Trigger = DAC_OUTPUTBUFFER_DISABLE;//DAC通道输出缓冲区HAL_DAC_ConfigChannel(&DAC1_Initstructure,&DAC_Channel,DAC_CHANNEL_1);//配置DAC通道HAL_DAC_Start(&DAC1_Initstructure,DAC_CHANNEL_1);//开启DAC
}void HAL_DAC_MspInit(DAC_HandleTypeDef *hdac)
{if(hdac->Instance == DAC){__HAL_RCC_DAC_CLK_ENABLE();//开启DAC的时钟__HAL_RCC_GPIOA_CLK_ENABLE();//开启GPIOA的时钟GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;//GPIO模式为模拟GPIO_InitStructure.Pin = GPIO_PIN_4;HAL_GPIO_Init(GPIOA,&GPIO_InitStructure);}
}/* Vol 取值范围 : 0 - 3300*/
void Set_Voltage(uint16_t Vol)
{double temp = Vol;temp /= 1000;temp = temp * 4096 / 3.3;if(temp >= 4096) temp = 4095;HAL_DAC_SetValue(&DAC1_Initstructure,DAC_CHANNEL_1,DAC_ALIGN_12B_R,temp);
}

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

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

相关文章

云计算架构学习之Ansible-playbook实战、Ansible-流程控制、Ansible-字典循环-roles角色

一、Ansible-playbook实战 1.Ansible-playbook安装软件 bash #编写yml [rootansible ansible]# cat wget.yml - hosts: backup tasks: - name: Install wget yum: name: wget state: present #检查playbook的语法 [rootansible ansible]…

前端工程化的具体实现细节

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Chapter 3 Differential Voltage Current amplifiers

Chapter 3 Differential Voltage & Current amplifiers 这一章介绍差分电压和电流放大器. Current mirrors 我们首先分析电流镜Current Mirror. 由一个diode-connected MOSCS放大MOS组成, diode-MOS将电流转换成电压, 再由CS MOS转换成电流. 考虑沟道调制效应, M1和M2的…

确保设备始终处于最佳运行状态,延长设备的使用寿命,保障系统的稳定运行的智慧地产开源了

智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…

[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义

上周简单整理了《deepseek-r1的不同版本(满血版、蒸馏版、量化)》,这次继续完善对其的认知——补充“剪枝”,并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…

Java 反射机制深度解析:类信息的来源、declared 的区别、赋值操作及暴力反射

在 Java 开发中,反射机制是一个强大且灵活的工具,它允许程序在运行时动态地获取类的信息、创建对象、调用方法和访问字段等。本文将结合代码示例和图示,深入探讨以下四个问题: 类信息来自哪里? 获取类信息时加不加 de…

Transformer 模型介绍(四)——编码器 Encoder 和解码器 Decoder

上篇中讲完了自注意力机制 Self-Attention 和多头注意力机制 Multi-Head Attention,这是 Transformer 核心组成部分之一,在此基础上,进一步展开讲一下编码器-解码器结构(Encoder-Decoder Architecture) Transformer 模…

电脑系统损坏,备份文件

一、工具准备 1.U盘:8G以上就够用,注意会格式化U盘,提前备份U盘内容 2.电脑:下载Windows系统并进行启动盘制作 二、Windows启动盘制作 1.微软官网下载启动盘制作工具微软官网下载启动盘制作工具https://www.microsoft.com/zh-c…

Linux下Ollama下载安装速度过慢的解决方法

问题描述:在Linux下使用默认安装指令安装Ollama,下载安装速度过慢,进度条进度缓慢,一直处于Downloading Linux amd64 bundle中,具体如下图所示: 其中,默认的Ollama Linux端安装指令如下&#xf…

uniapp中@input输入事件在修改值只有第一次有效的问题解决

在uniapp中使用输入框,要求输入不超过7个字,所以需要监听输入事件,当每次输入文字的时候,就把输入的值截断,取前7个值。但是在input事件中,重新赋值的值发生了变化,但是页面上的还是没有变&…

DeepSeek 助力 Vue 开发:打造丝滑的范围选择器(Range Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…

VMware按照的MacOS升级后无法联网

背景 3年前公司使用Flutter开发了一款app,现在app有微小改动需要重新发布到AppStore 问题 问题是原来的Vmware搭建的开发环境发布App失败了 提示:App需要使用xcode15IOS 17 SDK重新构建,这样的话MacOS至少需要升级到13.5 Xcode - 支持 - Ap…

Day01 【苍穹外卖】环境搭建与前后端联调

一、环境搭建 1.JDK安装与IDEA安装: JDK安装与IDEA安装:【JAVA基础】01、JAVA环境配置----JDK与 IDEA集成开发环境的安装(2025最新版本)_配置jdk-CSDN博客 注意,这里要下载JDK1.8版本的,不然会报错&…

STM32 HAL库USART串口中断编程:环形缓冲区防止数据丢失

HAL_UART_Receive接收最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,STM32 HAL库USART串口中断编程:演示数据丢失,需要在此基础优化一下. 本文介绍STM32F103 HAL库USART串口中断,利用环形缓冲区来防…

Vulnhub:DC-1靶机渗透

渗透过程 一,信息收集 1,探测目标IP地址 探测目标IP地址,探测主机的工具有很多,常见的有arp-scan、nmap还有netdiscover,这里使用arp-scan arp-scan -l确定了DC-1主机的IP地址为 192.168.126.1452,探测…

MySQL 之存储引擎(MySQL Storage Engine)

MySQL 之存储引擎 常见存储引擎及其特点 ‌InnoDB‌: ‌特点‌:支持事务处理、行级锁定、外键约束,使用聚簇索引,适合高并发读写和事务处理的场景‌。‌适用场景‌:需要高可靠性、高并发读写和事务处理的场景‌。 ‌M…

EasyX安装及使用

安装链接:EasyX Graphics Library for C 安装完成包含头文件graphics.h即可使用 RGB合成颜色(红色部分,绿色部分,蓝色部分) 每种颜色的值都是(0~255) 坐标默认的原点在窗口的左上角&#xf…

20.【线性代数】——坐标系中,平行四边形面积=矩阵的行列式

三 坐标系中,平行四边形面积矩阵的行列式 定理验证 定理 在坐标系中,由向量(a,b)和向量(c,d)组成平行四边形的面积 矩阵 [ a b c d ] \begin{bmatrix} a&b\\ c&d \end{bmatrix} [ac​bd​]的行列式,即&#x…

Grafana——Rocky9安装Grafana相关步骤记录

安装Grafana 安装 直接进下面这个页面,可以看到这边可以选择版本以及操作系统 并且如果是Linux平台的,下面会给出不同平台的命令,直接复制粘贴执行一下就可以了! 验证 运行命令 ## 运行service systemctl start grafana-server## 自启…

Mathtype安装入门指南

Mathtype安装入门指南 1 mathtype安装及补丁2 mathtype在word中加载3 常见的mathtype快捷命令4 实列测试 1 mathtype安装及补丁 下载相应的Mathtype7.4软件安装包,百度网盘链接为: 百度网盘链接下载完成后,有三个软件,如下图所示…