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

STM32F302 模拟比较器输出问题

[复制链接]
c_lass 提问时间:2017-9-1 16:57 /
         测试STM32F302RB 的模拟比较器的时候 使用PA3,PA4作为 COMPARE2 D的输入,PA2作为COMPARE2的输出, 无论PA3>PA4 还是PA4>PA3 PA2的电平都不翻转。为0.1-0.5V,我以为是我配置除了问题,拿cubemax 配置了一下仍然不能解决问题,结合前段时候用它测试 TIM15 更新事件产生TRGO 触发ADC转换DMA转移数据,使能DMA1_Channel_1中断,中断只进一次,觉得STM32F3系列有较多问题,去年同事用STM32F334做LLC,然后又放弃了,换TI 的 ucd3138(查了下它的AC/DC方案可以做 1KW 99%效率) ,好像官方给的例程就有问题。
测试代码如下:
                   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4;                  //PA3 COMPARE2+  PA4 COMPARE2-
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;                  //PA2 COMPARE2_OUT
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  GPIO_PinAFConfig(GPIOA,GPIO_PinSource2,GPIO_AF_8);
   
//    GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
//    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;                  
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
//    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
//  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
//  GPIO_Init(GPIOA, &GPIO_InitStructure);
   
   
   
//  COMP_StructInit(&COMP_InitStructure);
//  COMP_InitStructure.COMP_InvertingInput = COMP_InvertingInput_DAC1OUT1;        // 1/2 VREFINT×÷Ϊ±È½ÏÆ÷¸º¼«ÊäÈë
//  COMP_InitStructure.COMP_Output = COMP_Output_None;                              //Êä³ö²»Öض¨Ïò
//    COMP_InitStructure.COMP_BlankingSrce=COMP_BlankingSrce_None;                    //²»Ê¹ÄÜÊä³öÏûÒþ
//  COMP_InitStructure.COMP_Mode = COMP_Mode_HighSpeed;                             //±È½ÏÆ÷¸ßËÙģʽ
//    COMP_InitStructure.COMP_OutputPol=COMP_OutputPol_NonInverted;                   //Êä³ö²»·´Ïò
//    COMP_InitStructure.COMP_NonInvertingInput=COMP_NonInvertingInput_IO1;           //PA1 ×÷Ϊ COMPARE1 Õý¶ËÊäÈë
//  COMP_InitStructure.COMP_Hysteresis = COMP_Hysteresis_High;                      //Êä³ö³ÙÖ͸ß
//  COMP_Init(COMP_Selection_COMP1, &COMP_InitStructure);

  COMP_StructInit(&COMP_InitStructure);
  COMP_InitStructure.COMP_InvertingInput = COMP_InvertingInput_DAC1OUT1;         //PA4 DAC1OUT1 ×÷Ϊ±È½ÏÆ÷¸º¼«ÊäÈë
    COMP_InitStructure.COMP_NonInvertingInput=COMP_NonInvertingInput_IO2;   //PA3 ×÷Ϊ COMPARE2 Õý¶ËÊäÈë
  COMP_InitStructure.COMP_Output = COMP_Output_None;                              //Êä³öδÁ¬½ÓÆäËûÍâÉè
  COMP_InitStructure.COMP_Mode = COMP_Mode_HighSpeed;                           //
  COMP_InitStructure.COMP_Hysteresis = COMP_Hysteresis_No;                      //Êä³ö³ÙÖ͸ß
    COMP_InitStructure.COMP_OutputPol=COMP_OutputPol_NonInverted;
    COMP_InitStructure.COMP_BlankingSrce=COMP_BlankingSrce_None;
  COMP_Init(COMP_Selection_COMP2, &COMP_InitStructure);

收藏 评论1 发布时间:2017-9-1 16:57

举报

1个回答
无薪税绵 回答时间:2017-9-4 12:33:08
一般情况下,官方例程是不会有问题的。
请检查一下,IO引脚的复用问题,
看看是否已经正确配置了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版