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

CUBEMx中STM32,DAC没有输出值,始终0.062V

[复制链接]
乱劈材 提问时间:2017-9-22 09:16 /
CUBEMx中STM32,DAC没有输出值,始终0.062V,但是直接赋值2048有1.66输出
HAL库很是抓狂,代码如下:


while (1)
  {
         uint32_t i=0;
         uint32_t Data=0;
               
                for(i=0;i<=5;i++)
                {
                        Data=i*500;

      HAL_DAC_SetValue(&hdac, DAC_CHANNEL_1, DAC_ALIGN_12B_R, Data );
                       
                HAL_DAC_Start(&hdac, DAC_CHANNEL_1);
                         
      HAL_DAC_SetValue(&hdac, DAC_CHANNEL_2, DAC_ALIGN_12B_R, Data );
                       
                HAL_DAC_Start(&hdac, DAC_CHANNEL_2);

      printf ("a=%f v\r\n",3.3*(Data/4095));
                       
                        HAL_Delay(1000);
                        HAL_Delay(1000);
                        HAL_Delay(1000);
                        HAL_Delay(1000);
                        HAL_Delay(1000);
                }
  }




收藏 评论6 发布时间:2017-9-22 09:16

举报

6个回答
MrJiu 回答时间:2017-9-22 09:24:39
静下心来,看看参考手册,或许可以帮你,看看hal内部的源码也是可以嘀!!!!
feiante 回答时间:2017-9-22 09:41:55
参考一下例程吧,先把一个通道弄对了,然后在弄2个通道
乱劈材 回答时间:2017-9-22 22:53:27
feiante 发表于 2017-9-22 09:41
参考一下例程吧,先把一个通道弄对了,然后在弄2个通道

现在知道了要用软件触发,HAL 中 DAC_TRIGGER_SOFTWARE 这个函数如何实现?
乱劈材 回答时间:2017-9-22 23:50:59
feiante 发表于 2017-9-22 09:41
参考一下例程吧,先把一个通道弄对了,然后在弄2个通道

#define DAC_TRIGGER_SOFTWARE               ((uint32_t)(DAC_CR_TSEL1 | DAC_CR_TEN1)) /*!< Conversion started by software trigger for DAC channel */

头文件中,这句的uint32_t不能理解,应该怎样写
feiante 回答时间:2017-9-23 17:10:49
软件触发不用写代码,直接在stm32cubeMX中配置就好了,它会自动生成初始化代码的
乱劈材 回答时间:2017-9-26 19:36:40
这个程序不需要软件触发,sConfig.DAC_Trigger = DAC_TRIGGER_NONE;

只需要加一句__HAL_RCC_GPIOA_CLK_ENABLE();

所属标签

相似问题

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