历史上的今天
今天是:2025年04月21日(星期一)
2020年04月21日 | 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;
}
下一篇:STM32 DAC简单介绍
史海拾趣
|
大家好,我用的是holtek的HT46R322单片机,现在做一个程序,按加减键实现数字从0~9999变化,数码管用的是共阳的8位数码管,用循环点亮的方法。 我用一个存储单元保存要显示的数值,比如我要显示123,然后可 ...… 查看全部问答> |
|
Pocket PC2003操作系统中,界面右上角的叉是什么函数控制的啊? 我要在作的程序实现这样的功能:当要退出程序时,点击右上角的叉叉,弹出一个提示对话框,选择是否要退出.但EVC右上角的叉不像VC一样是CMainFrame中的WM_CLOSE事件响应的,哪位高人前辈给我讲讲我该怎么做才能达到这样的效果呢??… 查看全部问答> |
|
中国有多少工作很多年的电子工程师;中国每年有多少电子新手需要开始全新的技术生涯;他们有什么困惑需要去解开;他们最关心的问题是什么?他们对未来的期待是什么? 中国缺少什么样的电子工程师?中国缺少满嘴胡须的电子工程师;中国缺少坐轮椅 ...… 查看全部问答> |




