stm32f103的DAC模块,配置完成后用万用表测始终输出0V

qq_25980231 2016-09-15 05:04:17
这是DAC的配置函数
// 1.GPIO配置
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AIN;//模拟输入
GPIO_Init(GPIOA,&GPIO_InitStruct);



//2.DAC模块配置


void DAC_Configuration(void)
{
DAC_InitTypeDef DAC_InitStructure;

DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;//软件触发
DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
DAC_InitStructure.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;
DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Disable;

DAC_Init(DAC_Channel_1,&DAC_InitStructure);//初始化


DAC_Cmd(DAC_Channel_1,ENABLE);//开启DAC

}

//3.输出特定的电压函数

void DAC_OutVoltage(float Voltage)
{
u16 data = 0;
data = (u16)(Voltage/3.3)*4095;//数值转换
DAC_SetChannel1Data(DAC_Align_12b_R,data);//将数据送入DAC
DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE);//软件开启转换
}


希望大家帮忙看一下,实在找不出哪点有问题了
...全文
1628 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
looong_ 2020-03-28
  • 打赏
  • 举报
回复
我也遇到这样的问题,是哪里少了个括号啊?
晴朗Ting 2021-07-29
  • 举报
回复
@looong_ 你好 解决了没我也是这个问题
青瓜丸子 2019-05-31
  • 打赏
  • 举报
回复
从代码中,没看到你开时钟。
qq_26783235 2019-05-10
  • 打赏
  • 举报
回复
void Dac1_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTypeDef DAC_InitType; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE ); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE ); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_4) ; DAC_InitType.DAC_Trigger=DAC_Trigger_Software; DAC_InitType.DAC_WaveGeneration=DAC_WaveGeneration_None; DAC_InitType.DAC_LFSRUnmask_TriangleAmplitude=DAC_LFSRUnmask_Bit0; //DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Disable ; DAC_InitType.DAC_OutputBuffer=DAC_OutputBuffer_Enable ; DAC_Init(DAC_Channel_1,&DAC_InitType); DAC_Cmd(DAC_Channel_1, ENABLE); //ʹÄÜDAC1 DAC_SetChannel1Data(DAC_Align_12b_R, 0); } void DAC_OutVoltage(float valtage) { uint16_t data; data = (uint16_t)((valtage/3.3) *4096); DAC_SetChannel1Data(DAC_Align_12b_R,data); DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE); } 同样的问题,有人能帮忙看看哪里出问题了吗?
sun_chaser 2018-06-06
  • 打赏
  • 举报
回复
老哥,请问用万用表测量DAC输出管脚,红表笔接对应输出口,黑表笔接哪里?
qq_25980231 2016-09-24
  • 打赏
  • 举报
回复
引用 4 楼 libin55 的回复:
 
 /* Configure DAC as output */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
  /* Must be analogic (but works with other config which they have no effect) */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_Init(DAC_PORT, &GPIO_InitStructure);
DAC最大输出电压范围 0~REF+V(基准电压)
老大,已经找到原因了,就是忘加了个括号
晴朗Ting 2021-07-29
  • 举报
回复
@qq_25980231 在吗?哪里少了括号 我的也是这个问题
qq_25980231 2016-09-24
  • 打赏
  • 举报
回复
引用 3 楼 xuweiwei1860 的回复:
io口应该配置成输出,方向反了
模拟输入防干扰
qq_25980231 2016-09-24
  • 打赏
  • 举报
回复
引用 2 楼 tq384998430 的回复:
大哥,你用的是DAC,不是ADC,引脚初始化成GPIO_Mode_AIN算是什么回事。
DAC的引脚在配置的时候要配置成模拟输入模式,防干扰
fly 100% 2016-09-19
  • 打赏
  • 举报
回复
io口应该配置成输出,方向反了
Quan略略略 2016-09-19
  • 打赏
  • 举报
回复
大哥,你用的是DAC,不是ADC,引脚初始化成GPIO_Mode_AIN算是什么回事。
玉怀一捧雪 2016-09-19
  • 打赏
  • 举报
回复
 
 /* Configure DAC as output */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
  /* Must be analogic (but works with other config which they have no effect) */
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_Init(DAC_PORT, &GPIO_InitStructure);
DAC最大输出电压范围 0~REF+V(基准电压)
qq_25980231 2016-09-15
  • 打赏
  • 举报
回复
有人没——————

27,373

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧