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

stmf32f051 dac 无论怎么配置 pa4都没有输出

[复制链接]
xxw-370311 提问时间:2017-12-12 19:27 /
初始化后,每次写入2900的数据,示波器测量输出为0,代码如下:
        DAC_InitTypeDef dactype;
        GPIO_InitTypeDef gpioinit;
          /* GPIOA clock enable */                  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
          /* Configure PA.04 (DAC_OUT1) as analog */
          gpioinit.GPIO_Pin =  GPIO_Pin_4;
          gpioinit.GPIO_Mode = GPIO_Mode_AN;
          gpioinit.GPIO_PuPd = GPIO_PuPd_NOPULL;
          GPIO_Init(GPIOA, &gpioinit);
         RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
        dactype.DAC_Trigger = DAC_Trigger_Software;
        dactype.DAC_OutputBuffer = DAC_OutputBuffer_Disable;
        dactype.DAC_WaveGeneration = DAC_WaveGeneration_None;
        dactype.DAC_LFSRUnmask_TriangleAmplitude = DAC_LFSRUnmask_Bit0;
        DAC_Init(DAC_Channel_1, &dactype);
        DAC_Cmd(DAC_Channel_1, ENABLE);
上面是初始化dac部分,

        DAC_SetChannel1Data(DAC_Align_12b_R, 2900);
        DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);
上面是写入部分

请问各位大神,代码有什么问题没有呢?


收藏 2 评论14 发布时间:2017-12-12 19:27

举报

14个回答
五哥1 回答时间:2018-1-29 00:44:21
楼主可以用官方例程和你的程序对比的看下
黑皮男 回答时间:2018-3-1 09:24:50
GPIOA的端口时钟没有使能

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wudianjun2001 回答时间:2018-3-1 09:25:09
还是网上找个现成的例程,测试通过后对比修改下比较直接,底层的东西大部分不需要花大量时间去弄

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

bargagebaobei 回答时间:2018-3-1 09:26:21
pa4 你设置为上拉看看,外围电路上有没有负载啊,还有就是a口时钟我没看见使能的代码啊

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

zhjb1 回答时间:2018-3-1 09:38:05
您设置PA5作为DAC输出试试。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-3-1 09:42:40
本帖最后由 wenyangzeng 于 2018-3-1 09:56 编辑

少了DAC触发源:
DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;
当然还要对对应的定时器进行配置。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wolfgang2015 回答时间:2018-3-1 10:05:52
wenyangzeng 发表于 2018-3-1 09:42
少了DAC触发源:
DAC_InitStructure.DAC_Trigger = DAC_Trigger_T2_TRGO;
当然还要对对应的定时器进行配置 ...

“dactype.DAC_Trigger = DAC_Trigger_Software;”
有,他用的是软件触发源。
wolfgang2015 回答时间:2018-3-1 10:09:25
一般来说
初始化后,每次写入2900的数据,示波器测量输出为0
1、换个口子试试,很有可能DAC被静电击穿,导致不能输出这个有案例的;
2、输出0,看电路是否对地短路。
3、初始化大程度是对dactype 结构的了解。看看相关配置参数;多半是这里的问题;

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

jcx0324 回答时间:2018-3-1 10:23:35
ADC的输出能力很弱的,看看是否带负载太大,或者外接运放试试看

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版