STM32L152 DAC输出摆幅
本帖最后由 ZBug 于 2015-11-27 10:19 编辑问题: STM32L152RC 在使用DAC时,最低电压总是到不了0V ,刚开始以为是自己板子问题,后来用discovery板子还是到不了0V。
比如我用是这个语句过后
DAC_SetChannel1Data(DAC_Align_12b_R,2);
输出为50mV,而且只有在DAC设定值大于某个值的时候,DAC的输出才随着DAC 寄存器的值增加而增加。
开发环境:STM32CUBE + KEIL + STM32L152RC discovery
请问板上的大神们有没有遇到这样的问题,烦请赐教,谢谢!
配置过程:void DAC_Config(void)
{
/* Enable GPIOA clock */
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
/* Configure PA.04 (DAC_OUT1) in analog mode -------------------------*/
GPIO_InitStructure.GPIO_Mode= GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd= GPIO_PuPd_NOPULL;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Enable DAC clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
/* DAC channel1 Configuration */
DAC_InitStructure.DAC_Trigger = DAC_Trigger_None;
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
/* DAC Channel1 Init */
DAC_Init(DAC_Channel_1, &DAC_InitStructure);
/* Enable DAC Channel1 */
DAC_Cmd(DAC_Channel_1, ENABLE);
}
配置好过后调用下面语句设置dac值:
DAC_SetChannel1Data(DAC_Align_12b_R,2);
自己顶一发 看看数据手册吧最好是datasheet原版
是 这样子,电压小 的 时候 输出不是线性,0.5v以上基本 能 线性,你可以试一下外部 基准。看能不能改善
页:
[1]