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

STM32F334配置双路DAC输出,DAC2硬件上监测不到输出

[复制链接]
mingshixu 提问时间:2019-1-22 21:02 /
本帖最后由 mingshixu 于 2019-1-23 20:17 编辑

各位老师,求助一个问题:
   最近在学习STM32F334,想实现双路DAC独立输出,根据DEMO改的代码调试过程中,DAC1能正常输出,DAC2寄存器上能看到数据,但硬件管脚上检测不到输出电平。代码如下:
  1. void Configure_DAC(void)
  2. {
  3.   /*## Configuration of GPIO used by DAC channels ############################*/
  4.    __IO uint32_t wait_loop_index = 0;
  5.   /* Enable GPIO Clock */
  6.   LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPIOA);  
  7.   /* Configure GPIO in analog mode to be used as DAC output */
  8.   LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_4, LL_GPIO_MODE_ANALOG);
  9.    /* Configure GPIO in analog mode to be used as DAC output */
  10.   LL_GPIO_SetPinMode(GPIOA, LL_GPIO_PIN_6, LL_GPIO_MODE_ANALOG);   
  11.   /*## Configuration of DAC ##################################################*/  
  12.   /* Enable DAC clock */
  13.   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_DAC1);
  14.   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_DAC2);  
  15.   /* Select trigger source */
  16.   LL_DAC_SetTriggerSource(DAC1, LL_DAC_CHANNEL_1, LL_DAC_TRIG_SOFTWARE);
  17.   LL_DAC_SetTriggerSource(DAC2, LL_DAC_CHANNEL_1, LL_DAC_TRIG_SOFTWARE);   
  18.   /* Set the data to be loaded in the data holding register */
  19.    LL_DAC_ConvertData12RightAligned(DAC1, LL_DAC_CHANNEL_1, 0x300);
  20.    LL_DAC_ConvertData12RightAligned(DAC2, LL_DAC_CHANNEL_1, 0x300);  
  21.   /* Enable interruption DAC channel1 underrun */
  22.   LL_DAC_EnableIT_DMAUDR1(DAC1);
  23.   LL_DAC_EnableIT_DMAUDR1(DAC2);
  24.   /* Enable DAC channel */
  25.   LL_DAC_Enable(DAC1, LL_DAC_CHANNEL_1);
  26.   LL_DAC_Enable(DAC2, LL_DAC_CHANNEL_1);
  27.   /* Delay for DAC channel voltage settling time from DAC channel startup.    */
  28.   wait_loop_index = ((LL_DAC_DELAY_STARTUP_VOLTAGE_SETTLING_US * (SystemCoreClock / (100000 * 2))) / 10);
  29.   while(wait_loop_index != 0)
  30.   {
  31.     wait_loop_index--;
  32.   }
  33.   LL_DAC_EnableTrigger(DAC1, LL_DAC_CHANNEL_1);
  34.   LL_DAC_EnableTrigger(DAC2, LL_DAC_CHANNEL_1);
  35. }
复制代码

微信图片_20190122210014.jpg 微信图片_20190122210004.jpg

调试时观测两路DAC的寄存器,数值都相同,但DAC2管脚上始终没有输出电平,请教各位老师,这个问题怎么查?


仔细阅读了数据手册,发现DAC2与DAC1不同的一点是:DAC2在输出端有一个switch需要配置,配置为switch_enable就可以了。

收藏 评论1 发布时间:2019-1-22 21:02

举报

1个回答
Kevin201707 回答时间:2019-1-24 10:13:07
DAC2可以不输出到引脚。

所属标签

相似问题

官网相关资源

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