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

管脚上面有中断信号 STM32F051就是不进中断函数

[复制链接]
子曰小玖 提问时间:2014-12-12 14:59 /
USER.rar (22.14 KB, 下载次数: 12)
收藏 评论11 发布时间:2014-12-12 14:59

举报

11个回答
小贾-370388 回答时间:2014-12-12 16:51:27
中断使能了吗
wenyangzeng 回答时间:2014-12-12 20:04:03
本帖最后由 wenyangzeng 于 2014-12-12 20:13 编辑

EXTI_GenerateSWInterrupt(EXTI_Line0);试看看
善良的女性 回答时间:2014-12-12 23:45:09




wamcncn 回答时间:2014-12-13 15:13:57
最好在中断服务函数开头和结尾都把中断标志位清0
奔跑小蜗牛 回答时间:2014-12-14 12:05:26
是不是进了中断,但是没实现中断里的功能?
void EXTI0_1_IRQHandler(void)
{
    EXTI_ClearITPendingBit(EXTI_Line0);//清除中断标志
    ON_LED2();
}
看看有效果么
子曰小玖 回答时间:2014-12-17 08:54:27
奔跑小蜗牛 发表于 2014-12-14 12:05
是不是进了中断,但是没实现中断里的功能?
void EXTI0_1_IRQHandler(void)
{

都一样!
子曰小玖 回答时间:2014-12-17 08:54:49
wambob 发表于 2014-12-13 15:13
最好在中断服务函数开头和结尾都把中断标志位清0

这个也试过了!还是不行。
子曰小玖 回答时间:2014-12-17 08:55:19

使能了!   
子曰小玖 回答时间:2014-12-17 08:55:57
wenyangzeng 发表于 2014-12-12 20:04
EXTI_GenerateSWInterrupt(EXTI_Line0);试看看

还是不行!!我换其它中断试试!
wenyangzeng 回答时间:2014-12-17 21:33:26
本帖最后由 wenyangzeng 于 2014-12-17 21:35 编辑

楼主:我特地运行了你的程序,在中断配置加入断点,确定可以进入外部中断:
void EXIT_Init(void)
{
                GPIO_InitTypeDef GPIO_InitStruct;
          EXTI_InitTypeDef EXTI_InitStruct;
          NVIC_InitTypeDef NVIC_InitStruct;
          /* config the extiline(PB0) clock and AFIO clock */
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
          RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
         
        
         /* Configyre P[A|B|C|D|E]0  NIVC  */
                NVIC_InitStruct.NVIC_IRQChannel =EXTI0_1_IRQn;
                NVIC_InitStruct.NVIC_IRQChannelPriority = 0x00;
                NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
                NVIC_Init(&NVIC_InitStruct);
        

                GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0;
          GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IN;//EXTI_Mode_Interrupt
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_10MHz;
    GPIO_InitStruct.GPIO_PuPd = GPIO_PuPd_UP; // ÉÏÀ­ÊäÈëGPIO_PuPd_DOWN
                GPIO_Init(GPIOB, &GPIO_InitStruct);

                /* EXTI line(PB0) mode config */

                SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource0);
                EXTI_InitStruct.EXTI_Line =EXTI_Line0;
                EXTI_InitStruct.EXTI_Mode = EXTI_Mode_Interrupt;
                EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Falling; //ϽµÑØÖжÏ
                EXTI_InitStruct.EXTI_LineCmd = ENABLE;
                EXTI_Init(&EXTI_InitStruct);
                __set_PRIMASK(1);        
//以上是你原来的函数,此处插入这句函数:
                EXTI_GenerateSWInterrupt(EXTI_Line0);//在这里设置一个断点,可以进入该断点.证明EXIT中断是可入的,请检查你其他函数.
               
}
子曰小玖 回答时间:2014-12-18 08:12:21
本帖最后由 wxh0000mm 于 2014-12-18 08:13 编辑
wenyangzeng 发表于 2014-12-17 21:33
楼主:我特地运行了你的程序,在中断配置加入断点,确定可以进入外部中断:
void EXIT_Init(void)
{

谢谢  。  我去试试 。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版