STM32—DAC配置
文章目录
- 一.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配置相关推荐
- STM32 DAC详解
目录 01.DAC简介 02.DAC转换 03.功能说明 04.DAC输出电压 05.代码配置 上一篇介绍了<STM32ADC详解>,既然有模拟转数字的ADC模块,那么就必然有数字转模拟的 ...
- STM32 DAC + DMA + TIM 输出正弦波,三角波,方波信号
硬件平台:STM32F4 库类型:标准库. 参考:[二代示波器教程]第12章 示波器设计-DAC信号发生器的实现 DAC框图如下: 通过TIM触发DAC转换,转换完成后通过DMA输出. DMA通道框图 ...
- 基于STM32+DAC+DMA和AD9850的波形发生器
基于STM32+DAC+DMA和AD9850的波形发生器 试验目的 一.通过STM32单片机DAC+DMA产生频率可调正弦波.三角波.锯齿波.方波. 二.使用STM32驱动AD9850波形发生模块产生 ...
- STM32 DAC DMA 使用
目的:STM32 DAC DMA 环形发送音频数据:(ffmpeg.exe 可以将一些常见的音频文件转为原始数据,很强大): 用到的外设:DAC ,TIM,DMA DCA配置 TIM配置 加入代码 H ...
- stm32时钟配置总结
stm32时钟配置时钟源: 1,HSE(高速外部时钟)即常见的外接8M晶振方案: 2,HSI(高速内部时钟) 即8M内部振荡时钟方案: 3,LSE(低速外部时钟)即常见的32.768Khz晶振方案: ...
- RT-Thread系统 STM32 DAC设备改进,直接调用系统DAC驱动函数设置输出电压
前言 RT-Thread系统官方的驱动支持DAC设备比较晚,还不太完善,所以早期的STM32F1等系列基于芯片的工程中并没有DAC设备的驱动,很多人建议直接调用HAL库中的函数操作DAC,但这样操作并 ...
- STM32 CubeMX配置ADC+DMA进行FFT(1)
STM32 CubeMX配置ADC+DMA,计算采样率和ADC电压 原创:睿智嵌入式 最近,因为项目需要处理音频信号,对AD采集的音频信号进行FFT运算,记录一下学习过程. 主要内容: 1.ADC和D ...
- STM32 GPIO 配置之ODR, BSRR, BRR 详解
用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平.管脚对于位写1 gpio ...
- STM32寄存器配置USART1串口及USART->BRR值的计算
STM32寄存器配置串口USART1及USART->BRR值的计算 main.c #include "stm32f10x.h" // Device header #inclu ...
最新文章
- 三下乡辅导孩子计算机知识,【青春“三下乡”】普及家庭教育知识,共促孩子健康成长...
- GLFW--Getting started
- 【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置...
- 二极管ss14测量_各种常用二极管的检测方法
- django html5 video,Django Web中的静态文件之HTML5第1篇
- starling教程-纹理(Texture)
- zcmu2117(普通母函数)
- 红色警戒2修改器原理百科(十)
- 数学--数论--莫比乌斯函数
- Web框架——Flask系列之abort函数与自定义异常处理(十三)
- 前后端分离使用 Token 登录解决方案
- 【4】SCN-Feign远程调用
- 最常用的四种设计模式
- 现行一级学科和二级学科目录(学位授予和人才培养学科目录)
- 惠普总裁口述的职业规划(3)
- win10怎么取消小箭头_已取消到该网页的导航,小编教你网页提示已取消到该网页的导航怎么办...
- PDF批量反色打印解决方案
- python批量请求url_python批量请求注册接口爬虫相关问题记录
- PDF可以通过OCR图文识别软件转换为JPEG图像吗
- Ableton Live 11 Suite v11.1.0 WiN-MAC 电音制作宿主软件
热门文章
- 对 mysql_init 未定义的引用_解析:以mysql_开始的未定义引用错误
- oracle 手机壁纸,Android修改手机壁纸功能
- tar 慢 加快_加快慢的Outlook 2007
- R语言caret机器学习(二):数据预处理上
- R语言使用caret包的confusionMatrix函数计算混淆矩阵、基于混淆矩阵的信息手动编写函数计算accuray、准确率指标
- vue2项目引入社交分享插件vshare
- 积分电路和微分电路的工作原理
- oracle 11g安装过程中问题:移动bin\oralbac11.dll 到bin\oralbac11.dll.dbl出错
- 使用C++将sqlite3数据库访问封装成dsn类
- 计算机主机风扇怎么庄,机箱风扇怎么装,小编教你电脑机箱风扇怎么装