欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STM8L151 DAC

程序员文章站 2024-03-19 14:19:16
...

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

STM8L151 DAC

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;
}


相关标签: STM8L151 DAC输出