STM32-DAC数模转换

本文详细介绍了STM32微控制器中DAC模块的基本配置流程,包括时钟配置、参数初始化、输出通道设置等关键步骤。特别强调了DAC输出缓存的使用风险,并提供了初始化函数示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、基本介绍

核心框图

触发方式是硬件触发(3APB1),还是软件触发 (1 APB1) 触发时间是不同的

 

DAC_OUT 模拟输入模式,防止寄生电流的消耗(这个是一样的没必要设置成输出

 

 

设置输出电压的大小:

 

2、DAC的配置步骤

 

Step1 配置端口 DAC时钟

 

并不是配置了模拟输入  就不能输出

step2 初始化DAC的参数  对其进行一定的配置

下面是一个初始化DAC初始化函数的额例子

 

一般不使用DAC的输出缓存, 如果使用的话  输出不能为0  这样是很危险的,所以,一般我们都会选择在外部另外加入驱动

 

 

Step3 配置输出通道

 

 

其中的那个0  就是DOR的数值,用来直接控制输出的电压

 

 

 

 

void dac_init()		//DAC³õʼ»¯
{
	GPIO_InitTypeDef GPIO_InitStructure;   //GPIO的结构体
	DAC_InitTypeDef DAC_InitStructure;//DAC的结构体

	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);  //开启GPIO和服用的宫鞥你
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC,ENABLE); //开启DAC时钟

	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;//DAC_1
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN;//设置成模拟输入
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	GPIO_SetBits(GPIOA,GPIO_Pin_4);//Êä³ö¸ß
	

	DAC_InitStructure.DAC_Trigger=DAC_Trigger_None;//不触发
    DAC_InitStructure.DAC_WaveGeneration=DAC_WaveGeneration_None;//不使用波
   //ÆÁ±Î ·ùÖµÉèÖÃ
    DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0;
   //关闭缓存
    DAC_InitStructure.DAC_OutputBuffer=DAC_OutputBuffer_Disable;
    DAC_Init(DAC_Channel_1,&DAC_InitStructure);//初始化通道1 
    DAC_Cmd(DAC_Channel_1,ENABLE);//使能channel1 
    DAC_SetChannel1Data(DAC_Align_12b_R,0);//12位  右对齐
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有水杯和雨伞的工科男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值