【STM32】DAC数字模拟转换

本篇博客重点在于标准库函数的理解与使用,搭建一个框架便于快速开发

目录

前言 

DAC简介

DAC配置

DAC时钟使能

GPIO初始化

DAC配置

DAC使能 

读写DAC值

驱动代码

MyDAC.h

MyDAC.c

main.c


前言 

大容量的STM32F101xx和STM32F103xx产品才有DAC外设

大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。

DAC简介

数字/模拟转换模块(DAC)是12位数字输入(0~4096),电压输出的数字/模拟转换器。DAC可以配置为8位 或12位模式,也可以与DMA控制器配合使用。DAC工作在12位模式时,数据可以设置成左对齐 或右对齐。DAC模块有2个输出通道,每个通道都有单独的转换器。在双DAC模式下,2个通道可以独立地进行转换,也可以同时进行转换并同步地更新2个通道的输出。DAC可以通过引脚输入参考电压VREF+以获得更精确的转换结果

单个DAC通道的框图

DAC配置

DAC时钟使能

RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);	

GPIO初始化

GPIO的其它参数的理解可以阅读下方博客,这里不再赘述。

【STM32】GPIO和AFIO标准库使用框架_stm32中afio口-优快云博客

注意: 一旦使能DACx通道,相应的GPIO引脚(PA4或者PA5)就会自动与DAC的模拟输出相连 (DAC_OUTx)。为了避免寄生的干扰和额外的功耗,引脚PA4或者PA5在之前应当设置成模拟输入(AIN) 

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);	    	 
	
	GPIO_InitTypeDef GPIO_InitStructure;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;				 
 	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; 		 //模拟输入
 	GPIO_InitStructure.GPIO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值