STM8L151 DAC

最近在做一个关于ADC采集的,同时使用DAC输出的项目,对于DAC输出0V电压做一下总结。

STM8L151中内嵌1个 Output Buffer其作用可以用来降低输出阻抗,可以在不添加外部运算放大器时直接驱动外部负载,通过 DAC_CHxCR1来控制其使能或失能。

我使用的是PB4 具体的配置代码如下:

/********************************
RI_IOSwitch_13	--->	PB6
RI_IOSwitch_14	--->	PB5
RI_IOSwitch_15	--->	PB4
配置DAC1 通道1 PB4 
********************************/
void DAC_Config(void)
{
	GPIO_Init(GPIOB,GPIO_Pin_4,GPIO_Mode_In_FL_No_IT);
	CLK_PeripheralClockConfig(CLK_Peripheral_DAC, ENABLE);
	
	CLK_PeripheralClockConfig(CLK_Peripheral_COMP,ENABLE);  //打开比较器
 
	
  SYSCFG_RIIOSwitchConfig (RI_IOSwitch_15, ENABLE); //打开PB4 DA
	
	DAC_DeInit(); //DAC初始化到默认值
	// DAC_OutputBuffer_Disable  可输出 0V电压
	DAC_Init( DAC_Channel_1,DAC_Trigger_Software,DAC_OutputBuffer_Disable);//通道 触发 缓冲

  DAC_WaveGenerationCmd(DAC_Channel_1, DAC_Wave_Triangle, ENABLE);//三角波
	
  DAC_SetTriangleWaveAmplitude(DAC_Channel_1, DAC_TriangleAmplitude_4095);//
 
  DAC_Cmd(DAC_Channel_1, ENABLE); 

	DAC_SetChannel1Data(DAC_Align_12b_R,0);
	DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);
	
	
}

参考3.3V输出的电压值与实际值的比例关系


/****************************
设置通道1输出电压
vol = 0~3300 mV  
*****************************/
u8 Set_Vol(u16 vol)
{
	double temp=vol;	
	temp=temp*4095/3300;
	DAC_SetChannel1Data(DAC_Align_12b_R, temp);  
	return 1;
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值