你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32L152 DAC输出摆幅

[复制链接]
ZBug 提问时间:2015-11-27 10:16 /
本帖最后由 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);






收藏 评论3 发布时间:2015-11-27 10:16

举报

3个回答
ZBug 回答时间:2015-11-27 10:33:35
自己顶一发
dwwzl 回答时间:2015-11-27 11:21:48
看看数据手册吧最好是datasheet原版
sfee2002 回答时间:2015-11-27 15:10:08
是 这样子,电压小 的 时候 输出不是线性,0.5v以上基本 能 线性,你可以试一下外部 基准。看能不能改善
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版