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

查看: 2599|回复: 1

STM32比较器

[复制链接]

2

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
发表于 2012-12-5 16:45:38 | 显示全部楼层 |阅读模式
我用的是STM32L151CBT6,现在使用其中的比较器1遇到了问题,请大家帮助一下啊。
STM32L系列单片机比较器基本上雷同于STM32F系列比较器。用分析STM32F的思路就可以的。
问题如下:   使用的PA4 口输入到比较器1的正输入端。软件配置如下,用查询方式是可以正确检测输入端电压的,但是就是进不去比较器中断,请问是怎么回事啊。
void COMP_Config(void)
{
  NVIC_InitTypeDef        NVIC_InitStructure;
  //COMP_InitTypeDef        COMP_InitStructure;
  EXTI_InitTypeDef        EXTI_InitStructure;
  GPIO_InitTypeDef        GPIO_InitStructure;
 
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
  /* Configure PA4 in analog mode */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
 
  /* COMP Peripheral clock enable */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_COMP, ENABLE);
   
  COMP_Cmd(ENABLE); /* Enable the Comparator 1 */
  Delay(1);
  SYSCFG_RISwitchControlModeCmd(ENABLE);/* Enable the switch control mode */ 
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_VCOMP, ENABLE);/* Close the ADC analog switch VCOMP */  
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_CH18, ENABLE); /* Close the I/O analog switch number 4 */
    
  /* Configure and enable EXTI21 */
  EXTI_InitStructure.EXTI_Line = EXTI_Line21; 
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
  /* Configure and enable COMP interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = COMP_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0f;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0f;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure); 
 
}
回复

使用道具 举报

2

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
1970-1-1
 楼主| 发表于 2012-12-5 16:50:53 | 显示全部楼层

回复:STM32比较器

不好意思,刚才发的代码有问题,下面的是正确的。
还请各位多多帮忙,拜谢。
void COMP_Config(void)
{
  NVIC_InitTypeDef        NVIC_InitStructure;
  //COMP_InitTypeDef        COMP_InitStructure;
  EXTI_InitTypeDef        EXTI_InitStructure;
  GPIO_InitTypeDef        GPIO_InitStructure;
 
  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
  /* Configure PA4 in analog mode */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;----------------------------------------更改
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  GPIO_Init(GPIOA, &GPIO_InitStructure);---------------------------------------------更改
  
  /* COMP Peripheral clock enable */
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_COMP, ENABLE);
   
  COMP_Cmd(ENABLE); /* Enable the Comparator 1 */
  Delay(1);
  SYSCFG_RISwitchControlModeCmd(ENABLE);/* Enable the switch control mode */ 
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_VCOMP, ENABLE);/* Close the ADC analog switch VCOMP */  
  SYSCFG_RIIOSwitchConfig(RI_IOSwitch_CH4, ENABLE); /* Close the I/O analog switch number 4 */----------------------------------------更改
    
  /* Configure and enable EXTI21 */
  EXTI_InitStructure.EXTI_Line = EXTI_Line21; 
  EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;
  EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  EXTI_Init(&EXTI_InitStructure);
  /* Configure and enable COMP interrupt */
  NVIC_InitStructure.NVIC_IRQChannel = COMP_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0f;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0f;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);  
 
}
回复 支持 反对

使用道具 举报

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