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

DA通道2输出正常,DA通道1输出不正常,懂的帮忙看一下

[复制链接]
风继续吹QAQ 提问时间:2015-6-10 16:06 /
本帖最后由 风继续吹QAQ 于 2015-6-11 10:41 编辑

static void DAC_Config(void)
{

        GPIO_InitTypeDef GPIO_InitStructure;
        DAC_InitTypeDef  DAC_InitStructure;

  /* 使能GPIOA时钟 */
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);        
        
        /* 使能DAC时钟 */        
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
        
  /* DAC的GPIO配置,模拟输入 */
  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_4|GPIO_Pin_5 ;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AN;
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;

  GPIO_Init(GPIOA, &GPIO_InitStructure);
        


  /* 配置DAC 通道1 */
  DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;                                                //使用软件触发
  DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;        //不使用波形发生器
  DAC_InitStructure.DAC_Buffer_Switch = DAC_BufferSwitch_Disable;        //不使用DAC输出缓冲
  DAC_Init(DAC1,DAC_Channel_1,&DAC_InitStructure);

  /* 配置DAC 通道2 */
         DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;
   DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_Triangle;
   DAC_InitStructure.DAC_Buffer_Switch = DAC_BufferSwitch_Disable;
   DAC_Init(DAC1, DAC_Channel_2,&DAC_InitStructure);
         
         
  /* 使能通道1 由PA4输出 */
  DAC_Cmd(DAC1,DAC_Channel_1, ENABLE);
  /* 使能通道2 由PA5输出 */
  DAC_Cmd(DAC1,DAC_Channel_2, ENABLE);


}
void DAC_test(void)
{

        DAC_Config();                    //调用DAC初始化函数
        DAC_DualSoftwareTriggerCmd(DAC1,ENABLE);           //同时启用两个DAC通道触发器

        DAC_SetChannel2Data(DAC1,DAC_Align_12b_R,0xfff);       //设置通道1输出电压值大约为3.3V
        DAC_SoftwareTriggerCmd(DAC1,DAC_Channel_1,ENABLE);//使能DAC通道1
              
              
         DAC_SetChannel2Data(DAC1,DAC_Align_12b_R,0x555);//设置通道1输出电压值大约为1.1V
        DAC_SoftwareTriggerCmd(DAC1,DAC_Channel_2,ENABLE);//使能DAC通道2



}

int main(void)
{
   
DAC_test();
  while (1)                                                
  {

  }
}//通道1输出最大的时候也只是0.6V,而且根本不按程序的值输出。




收藏 评论6 发布时间:2015-6-10 16:06

举报

6个回答
风子 回答时间:2015-6-11 12:37:03
恭喜楼主已经解决了
风继续吹QAQ 回答时间:2015-6-11 10:40:52
我太粗心了,DAC_SetChannel2Data(DAC1,DAC_Align_12b_R,0xfff);  把这句改成:DAC_SetChannel1Data(DAC1,DAC_Align_12b_R,0xfff); 就好了
为什么是EEFOCUS小白 回答时间:2015-6-10 17:34:25
不懂帮顶
wambob 回答时间:2015-6-11 10:57:48
三思而后行啊
HenryChen 回答时间:2015-6-11 12:16:59
不懂帮顶
小蚂蚁快溜跑 回答时间:2015-6-11 16:21:46
多细心点就好了

所属标签

相似问题

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