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

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

[复制链接]
xxw-370311 提问时间:2017-12-12 19:27 /
阅读主题, 点击返回1楼
收藏 2 评论14 发布时间:2017-12-12 19:27
14个回答
无薪税绵 回答时间:2018-3-1 10:23:53
本帖最后由 无薪税绵 于 2018-3-1 11:13 编辑

看看 VDDA 和 VSSA 的电压是否正常。

  1. void MyDAC_Init(void)                        //DAC channel1 Configuration
  2. {
  3.           unsigned int tmpreg1=0,tmpreg2=0;
  4.          RCC->APB2ENR|=1<<2;                       //使能PORTA时钟
  5.         RCC->APB1ENR|=RCC_APB1Periph_DAC;         //使能DAC时钟
  6.          GPIOA->CRL&=0XFF00FFFF;
  7.         GPIOA->CRL|=0X00440000;                   //PA4,5 浮空输入            

  8.           tmpreg1=DAC->CR;                          //Get the DAC CR value  
  9.           tmpreg1&=~(CR_CLEAR_Mask<<DAC_Channel_1); //Clear BOFFx, TENx, TSELx, WAVEx and MAMPx bits  
  10.           tmpreg2=(DAC_Trigger_Software|DAC_WaveGeneration_None|DAC_LFSRUnmask_Bits8_0|DAC_OutputBuffer_Enable);
  11.           tmpreg1|=tmpreg2<<DAC_Channel_1;          //Calculate CR register value depending on DAC_Channel
  12.           DAC->CR=tmpreg1;                          //Write to DAC CR
  13.         DAC->CR|=CR_EN_Set<<DAC_Channel_1;        //DAC Channel1使能,PA4自动连接到DAC
  14.         DAC1_SetData(2900);

  15. }

  16. void DAC1_SetData(u16 data)
  17. {
  18.         DAC->DHR12R1=data;                        //通道1的12位右对齐数据
  19.         DAC->SWTRIGR|=0x01;                       //软件启动转换
  20. }

复制代码

再上个STM32F05X系列的参考代码:
STM32F05x系列Code.7z.rar (967.94 KB, 下载次数: 5)

DAC输出配置

DAC输出配置

评分

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

查看全部评分

toofree 回答时间:2018-3-1 10:35:31
本帖最后由 toofree 于 2018-3-1 10:40 编辑

刚看了STM32F0的固件库,DAC样例非常简单。只不过触发方式为 DAC_Trigger_None,初始化完成后,随时刷DAC_SetChannel1Data(DAC_Align_12b_R, ADCVal);,DAC立即输出。 傲游截图20180301103159.png

傲游截图20180301103238.png

傲游截图20180301103303.png


总之,先跑个样例程序,排除管脚或其它硬件故障,然后再自己发挥。

评分

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

查看全部评分

feixiang20 回答时间:2018-3-1 11:04:13
可能是硬件连接异常,输出0的话,再检查下配置是否正确,不行的话,再去查官方资料DAC部分,尝试样例检测,再来对比DAC_Init(DAC_Channel_1, &dactype);DAC_Cmd(DAC_Channel_1, ENABLE);
DAC_SetChannel1Data(DAC_Align_12b_R,修改了看看对比下);DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);

评分

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

查看全部评分

哈佛祖安智 回答时间:2018-3-1 17:13:59
用HAL库的例程试试吧,标准库过时了

评分

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

查看全部评分

hello_bug 回答时间:2018-3-1 22:36:22
DAC是复用功能吗,是否需要开启AFIO复用。另外就是DAC的配置是否正确,先看看官方例程吧。

评分

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

查看全部评分

12

所属标签

相似问题

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