STM32-DAC

DAC

  • 前言
  • 一、理论介绍
  • 二、DAC代码
  • 三、实验结果
  • 总结


前言

前言写个参考吧
STM32 DAC+串口


一、理论介绍

DAC是数字模拟转换器(Digital to Analog Converter)的缩写,它是一种将数字信号转换为模拟信号的设备。在这里插入图片描述
在这里插入图片描述
RC有2个通道。
DAC的初始化

#include "DAC.h"void DAC_init()
{//开启时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//配置PA4、PA5为模拟输入//PA4 ==> DAC_Channel_1//PA5 ==> DAC_Channel_2GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN ;GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5 ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStructure);//DAC初始化DAC_InitTypeDef DAC_InitStructure; DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bits11_0;DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;		//不使能缓存器[也就是电压跟随器],外部电路需要加功放//如果使能,可能会导致误差
//	DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;DAC_InitStructure.DAC_Trigger=DAC_Trigger_Software; //软件触发DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;		//不选择的波形发生器DAC_Init(DAC_Channel_1,&DAC_InitStructure);//使能DACDAC_Cmd(DAC_Channel_1,ENABLE);DAC_SetChannel1Data(DAC_Align_12b_R, 2048);			//分辨率为12位 右对齐 电压范围  0-4095//每个位表示一个电压级别,总共可以表示2^12=4096个不同的电压级别DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);		//软件使能转换}/*** @brief  DAC转换* @param 无 * @retval None*/
uint16_t DAC_Trans(void)
{// 写入数字电压DAC_SetChannel1Data(DAC_Align_12b_R, 2048);			// 12位 电压范围  0-4095// 触发转换DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);// 等待转换完成
//		while(DAC_GetFlagStatus(DAC_Channel_1, uint32_t DAC_FLAG);
//      while(DAC_GetFlagStatus(DAC_Channel_1, DAC_FLAG_DMAUDR) == RESET);return DAC_GetDataOutputValue(DAC_Channel_1);
}

主要需要解释的一个是DAC的初始化
在这里插入图片描述

  • 1、DAC_Trigger
    指定所选DAC通道的外部触发
    此参数的值可以是 @ref DAC_trigger_selection

    • 1.1 参数介绍
      在这里插入图片描述
      • 1.1.1 DAC_Trigger_None
        加载DAC1_DHRxxxx寄存器后,转换是自动的,而不是通过外部触发

      • 1.1.2 DAC_Trigger_T6_TRGO
        TIM6 TRGO 被选为 DAC 通道的外部转换触发器

      • 1.1.3 DAC_Trigger_T8_TRGO
        TIM8 TRGO 被选为 DAC 通道的外部转换触发器
        仅在高精度设备中

      • 1.1.4 DAC_Trigger_T3_TRGO
        TIM8 TRGO 被选为 DAC 通道的外部转换触发器,仅适用于连接线、中密度和低密度超值线设备.
        [不知道是不是芯片解释手册写的有问题这里T3的解释变成了T8的。。。。]

      • 1.1.5 DAC_Trigger_T7_TRGO
        TIM7 TRGO被选为DAC通道的外部转换触发器

      • 1.1.6 DAC_Trigger_T5_TRGO
        TIM5 TRGO被选为DAC通道的外部转换触发器

      • 1.1.6 DAC_Trigger_T15_TRGO
        TIM15 TRGO 被选为 DAC 通道的外部转换触发器
        仅适用于中密度和低密度超值生产线设备

      • 1.1.7 DAC_Trigger_T2_TRGO
        TIM2 TRGO 被选为 DAC 通道的外部转换触发器

      • 1.1.8 DAC_Trigger_T4_TRGO
        TIM4 TRGO 被选为 DAC 通道的外部转换触发器

      • 1.1.9 DAC_Trigger_Ext_IT9
        EXTI Line9 事件被选为 DAC 通道的外部转换触发器

      • 1.1.10 DAC_Trigger_Software
        通过DAC通道的软件触发器启动转换

  • 2、DAC_WaveGeneration
    指定DAC通道噪声波还是三角波
    是否生成,或者是否未生成波。
    此参数的值可以是 @ref DAC_wave_generation

  • 3、DAC_LFSRUnmask_TriangleAmplitude
    指定用于生成噪声波的 LFSR 模板或
    DAC通道的最大振幅三角形生成。
    此参数的值可以是 @ref DAC_lfsrunmask_triangleamplitude

  • 4、 DAC_OutputBuffer
    指定是启用还是禁用DAC通道输出缓冲器,
    此参数的值可以是 @ref DAC_output_buffer

    • 4.1 参数介绍
      在这里插入图片描述
      STM32的这个输出缓存使能虽然使输出能力强,但却会导致输出实际电压无法到0V.所以,一般情况下大家都不让它使能的,但是如果使能会提高驱动能力。
      -内部电压电压跟随器,选择驱动能力会增强【参考前言的参考博文和以下的】
      STM32的DAC输出驱动电压

二、DAC代码

三、实验结果


总结

这篇文章依旧没有总结

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

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

相关文章

组件化开发根组件

目录 一、组件化开发介绍 二、根组件 一、组件化开发介绍 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为。 好处:便于维护,利于复用,提升开发效率。 二、根组件 组件分类&#xff…

MvvmLight 框架的使用

前言 WPF开发中MVVM是一定要会使用的。本文就MvvmLight的基本使用做一下介绍。 1.安装 在NuGet中找MvvmLight 如图,右边有一个[安装]按钮。安装时有一个提示点【我接受】就可以继续安装了。 安装好后的效果: 安装好后会多一个ViewModel文件夹。有两个类…

多商户Docker Supervisor进程管理器部署

Dockerfile 根目录下没有Dockerfile的可以复制下面的命令 # 使用基础镜像 FROM leekay0218/crmeb-mer## 复制代码 ## 在本地调试注释掉,使用映射把文件映射进去 #ADD ./ /var/www# 设置工作目录 WORKDIR /var/www# 设置时区为上海 ENV TZAsia/Shanghai RUN ln -sn…

SeetaFace6人脸检测C++代码实现Demo

SeetaFace6包含人脸识别的基本能力:人脸检测、关键点定位、人脸识别,同时增加了活体检测、质量评估、年龄性别估计,并且顺应实际应用需求,开放口罩检测以及口罩佩戴场景下的人脸识别模型。 官网地址:https://github.co…

burp靶场sql注入通关—下

第十一关(布尔盲注): 1.根据提示修改包含 TrackingId cookie的请求,先抓包并修改这个值,在后面加上永真式发现出现Welcome back TrackingIdxxxx and 11 再修改这个值为永假式看看,发现没有Welcome back&am…

OpenNJet下载安装及入门实战教程

一、什么是OpenNJet OpenNJet是一款开放原子开源基金会孵化及运营的开源项目。OpenNJet采用C语言实现。是一款高性能、轻量级的WEB应用及代理软件。    OpenNJet 应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载…

python数据分析所需要的语法基础

Python语言基础——语法基础 前言语法基础变量标识符数据类型输入与输出代码缩进与注释 总结 前言 对于学过C语言的人来说,python其实很简单。学过一种语言,学习另一种语言,很显然的能感觉到,语言大体上都是相通的。当然&#xf…

企业微信hook接口协议,ipad协议http,客户群发送任务,获取要发送的客户群列表

客户群发送任务,获取要发送的客户群列表 参数名必选类型说明uuid是String每个实例的唯一标识,根据uuid操作具体企业微信 请求示例 {"uuid": "1688853790533324","id":1101292747044333637, //群发任务id"keyword…

3.栈和队列(汇总版)

目录 1.栈(一端插和删) 2.队列(一端插另一段删) 2.1队列的概念及结构 2.2 队列的实现 队列的接口 1.初始化队列 2.销毁队列 3.插入元素 4.出队列(头删) 5.访问对头 6.访问队尾 7.判断队列是否为…

CMakeLists.txt语法规则:foreach循环的关键字

一. 简介 前一篇文章学习了 CMakeLists.txt语法中 foreach循环的基本用法。文章如下: CMakeLists.txt语法规则:foreach 循环基本用法-CSDN博客 本文继续 CMakeLists.txt语法中 foreach循环语句,主要学习 foreach循环中的关键字。 二. CM…

Android 官网Ota介绍

构建 OTA 软件包 | Android 开源项目 | Android Open Source Project

(网络初识)

网络发展史 独立模式 在最开始计算机被发明出来,但网络还未普及的情况下,每个计算机之间都是相互独立的: 假设现在有一份数据需要处理,然后这份数据的处理又分给三个人分别处理。假设小松处理进行第一部分的处理,当小…

Skywalking的重要功能详解

学习本篇文章之前首先要了解一下Sky walking的基础知识 分布式链路追踪工具Sky walking详解 一&#xff0c;Sky walking监控数据库 在admin服务中&#xff0c;连接数据库查询user表中所有数据 引入依赖 <dependency><groupId>mysql</groupId><artifactI…

上位机图像处理和嵌入式模块部署(树莓派4b和qt应用全屏占有)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 我们都知道&#xff0c;嵌入式应用一般都是为了某一个特定应用而存在的。也就是说&#xff0c;和pc不同&#xff0c;这个嵌入式板子一般都是为了解…

多组间比较散点图+误差棒(自备)

目录 数据 计算四分位值 作图 数据 rm(list ls()) library(ggplot2) library(dplyr) library(ggpubr) library(reshape2) library(tidyverse)data <- iris##鸢尾花数据集 dat <- data[,c(5,1)]#单个数据进行分析 计算四分位值 #根据分组计算四分位及中位数 dat1 …

使用Docker安装Redis

大家好&#xff0c;今天给大家分享一下如何使用docker安装Redis&#xff0c;关于docker的安装和常用命令&#xff0c;大家可以参考下面两篇文章&#xff0c;本文中不做过多描述。 Docker在Windows与CentOS上的安装 Docker常用命令 关于Redis的介绍与常用操作可以参考&#x…

中国科技大航海时代,“掘金”一带一路

文&#xff5c;白 鸽 编&#xff5c;王一粟 “这不就是90年代的内地吗&#xff1f;” 在深度考察完沙特市场后&#xff0c;华盛集团联合创始人兼CEO张霆对镜相工作室感慨道。 在张霆看来&#xff0c;沙特落后的基建&#xff08;意味着大量创新空间&#xff09;、刚刚开放…

AHB---数据总线

1. 数据总线 为了实现AHB系统&#xff0c;需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位&#xff0c;但这可以根据数据总线宽度进行更改。 数据总线包含以下部分&#xff1a; HWDATAHRDATAEndianness&#xff08;字节序&#xff09; 1.1 HWDATA 在写传输…

【革命启示录】Spring框架:Java开发的“核聚变”能量源!

Hello&#xff0c;我是阿佑&#xff0c;今天给大家整的活是 《Java开发的“核聚变”能量源》 文章目录 Spring框架原理详解一、引言简介目的特点例子 二、背景介绍问题解决方案例子 三、核心概念3.1 控制反转&#xff08;Inversion of Control, IoC&#xff09;定义实现例子与代…

Sarcasm detection论文解析 |基于情感背景和个人表达习惯的有效讽刺检测方法

论文地址 论文地址&#xff1a;https://link.springer.com/article/10.1007/s12559-021-09832-x#/ 论文首页 笔记框架 基于情感背景和个人表达习惯的有效讽刺检测方法 &#x1f4c5;出版年份:2022 &#x1f4d6;出版期刊:Cognitive Computation &#x1f4c8;影响因子:5.4 &…