文章目录

  • 一.DAC介绍
  • 二.主要寄存器说明
  • 三.代码及配置

一.DAC介绍

ADC是模数转换器,可以将模拟电压转换位数字信号;DAC是数模转换器,可以将数字信号转换为模拟电压。
STM32F103ZET6内部DAC有2个通道,12位数字输入(也可以配置为8位),可以按要求输出不同的信号波形,其主要特点如下:

  • 2个DAC转换通道
  • 每个通道都有DMA功能
  • 2个通道可以同时转换或者分别转换
  • 输入信号可以是12位或8位
  • 12位输入模式分为:右对齐、左对齐
  • 有同步更新功能
  • 可以生成噪声波形
  • 可以生成三角波形

DAC框图如下:

二.主要寄存器说明

一般使用DAC情况不多,而且使用也就是单纯输出电压,基本用不到STM32输出一些特殊的波形,所以了解一下基本的寄存器就可以配饰DAC了。

DAC 输出是受 DORx 寄存器直接控制的,但是不能直接往 DORx寄存器写入数据,而是通过 DHRx 间接的传给 DORx 寄存器,实现对 DAC 输出的控制。
比如通道1的12位右对齐数据保持寄存器:

控制DAC的就是DAC控制寄存器了:



这种东西,现在查一下参考手册就可以很快掌握。

三.代码及配置

PA4开始设置为模拟输入是为了防止信号干扰,在使能DAC后,PA4会自动与DAC模拟输出相连,所以不必担心。

/* DAC1  PA4 模拟输入 12位右对齐 参考电压3.3V */
void DAC1_Init( void )
{GPIO_InitTypeDef GPIO_InitStruct;DAC_InitTypeDef DAC_InitStruct;RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE );RCC_APB1PeriphClockCmd( RCC_APB1Periph_DAC, ENABLE );GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;//GPIO引脚模式:模拟输入GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init( GPIOA, &GPIO_InitStruct );GPIO_SetBits( GPIOA, GPIO_Pin_4 );DAC_InitStruct.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;//只有波形发生时才使用DAC_InitStruct.DAC_OutputBuffer = DAC_OutputBuffer_Disable;//不使用输出缓存DAC_InitStruct.DAC_Trigger = DAC_Trigger_None;//不触发DAC_InitStruct.DAC_WaveGeneration = DAC_WaveGeneration_None;//不使用波形发生DAC_Init( DAC_Channel_1, &DAC_InitStruct );DAC_Cmd( DAC_Channel_1, ENABLE );DAC_SetChannel1Data( DAC_Align_12b_R, 0 );
}/* 参考电压3.3V 12位分辨率:0~4095 vol代表输出电压的100倍:0~330 */
void Set_DAC_Vol( uint16_t vol )
{uint16_t x;x = (uint16_t)4096*(vol/330);DAC_SetChannel1Data( DAC_Align_12b_R, x );
}

STM32—DAC配置相关推荐

  1. STM32 DAC详解

    目录 01.DAC简介 02.DAC转换 03.功能说明 04.DAC输出电压 05.代码配置 上一篇介绍了<STM32ADC详解>,既然有模拟转数字的ADC模块,那么就必然有数字转模拟的 ...

  2. STM32 DAC + DMA + TIM 输出正弦波,三角波,方波信号

    硬件平台:STM32F4 库类型:标准库. 参考:[二代示波器教程]第12章 示波器设计-DAC信号发生器的实现 DAC框图如下: 通过TIM触发DAC转换,转换完成后通过DMA输出. DMA通道框图 ...

  3. 基于STM32+DAC+DMA和AD9850的波形发生器

    基于STM32+DAC+DMA和AD9850的波形发生器 试验目的 一.通过STM32单片机DAC+DMA产生频率可调正弦波.三角波.锯齿波.方波. 二.使用STM32驱动AD9850波形发生模块产生 ...

  4. STM32 DAC DMA 使用

    目的:STM32 DAC DMA 环形发送音频数据:(ffmpeg.exe 可以将一些常见的音频文件转为原始数据,很强大): 用到的外设:DAC ,TIM,DMA DCA配置 TIM配置 加入代码 H ...

  5. stm32时钟配置总结

    stm32时钟配置时钟源: 1,HSE(高速外部时钟)即常见的外接8M晶振方案: 2,HSI(高速内部时钟) 即8M内部振荡时钟方案: 3,LSE(低速外部时钟)即常见的32.768Khz晶振方案: ...

  6. RT-Thread系统 STM32 DAC设备改进,直接调用系统DAC驱动函数设置输出电压

    前言 RT-Thread系统官方的驱动支持DAC设备比较晚,还不太完善,所以早期的STM32F1等系列基于芯片的工程中并没有DAC设备的驱动,很多人建议直接调用HAL库中的函数操作DAC,但这样操作并 ...

  7. STM32 CubeMX配置ADC+DMA进行FFT(1)

    STM32 CubeMX配置ADC+DMA,计算采样率和ADC电压 原创:睿智嵌入式 最近,因为项目需要处理音频信号,对AD采集的音频信号进行FFT运算,记录一下学习过程. 主要内容: 1.ADC和D ...

  8. STM32 GPIO 配置之ODR, BSRR, BRR 详解

    用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平.管脚对于位写1 gpio ...

  9. STM32寄存器配置USART1串口及USART->BRR值的计算

    STM32寄存器配置串口USART1及USART->BRR值的计算 main.c #include "stm32f10x.h" // Device header #inclu ...

最新文章

  1. 三下乡辅导孩子计算机知识,【青春“三下乡”】普及家庭教育知识,共促孩子健康成长...
  2. GLFW--Getting started
  3. 【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置...
  4. 二极管ss14测量_各种常用二极管的检测方法
  5. django html5 video,Django Web中的静态文件之HTML5第1篇
  6. starling教程-纹理(Texture)
  7. zcmu2117(普通母函数)
  8. 红色警戒2修改器原理百科(十)
  9. 数学--数论--莫比乌斯函数
  10. Web框架——Flask系列之abort函数与自定义异常处理(十三)
  11. 前后端分离使用 Token 登录解决方案
  12. 【4】SCN-Feign远程调用
  13. 最常用的四种设计模式
  14. 现行一级学科和二级学科目录(学位授予和人才培养学科目录)
  15. 惠普总裁口述的职业规划(3)
  16. win10怎么取消小箭头_已取消到该网页的导航,小编教你网页提示已取消到该网页的导航怎么办...
  17. PDF批量反色打印解决方案
  18. python批量请求url_python批量请求注册接口爬虫相关问题记录
  19. PDF可以通过OCR图文识别软件转换为JPEG图像吗
  20. Ableton Live 11 Suite v11.1.0 WiN-MAC 电音制作宿主软件

热门文章

  1. 对 mysql_init 未定义的引用_解析:以mysql_开始的未定义引用错误
  2. oracle 手机壁纸,Android修改手机壁纸功能
  3. tar 慢 加快_加快慢的Outlook 2007
  4. R语言caret机器学习(二):数据预处理上
  5. R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算accuray、准确率指标
  6. vue2项目引入社交分享插件vshare
  7. 积分电路和微分电路的工作原理
  8. oracle 11g安装过程中问题:移动bin\oralbac11.dll 到bin\oralbac11.dll.dbl出错
  9. 使用C++将sqlite3数据库访问封装成dsn类
  10. 计算机主机风扇怎么庄,机箱风扇怎么装,小编教你电脑机箱风扇怎么装