单片机
返回首页

STM8L151 DAC

2020-04-21 来源:eefocus

最近在做一个关于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;

}

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 红外线探测报警器

  • 短波AM发射器电路设计图

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • 带有短路保护系统的5V直流稳压电源电路图

  • 基于TDA2003的简单低功耗汽车立体声放大器电路

    相关电子头条文章