悬赏,帮我解决stm32F030 io口外部中断的问题

[复制链接]
4297|19
 楼主| taijing33 发表于 2018-7-17 10:42 | 显示全部楼层 |阅读模式
本帖最后由 taijing33 于 2018-7-17 10:50 编辑

void nvic_init(void)
{
        GPIO_InitTypeDef GPIO_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;
  EXTI_InitTypeDef EXTI_InitStructure;
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
        
          //3.??EXTI?

//        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
        
        //GPIO_PinAFConfig(GPIOF,GPIO_PinSource1,GPIO_AF_1);
        
        
        //GPIO_PinAFConfig(GPIOB,GPIO_PinSource8|GPIO_PinSource9,GPIO_AF_6);
        
        
   SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF,EXTI_PinSource1);
         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOF,EXTI_PinSource0);
//        EXTI_ClearITPendingBit(EXTI_Line0);
//        EXTI_ClearITPendingBit(EXTI_Line1);
         EXTI_InitStructure.EXTI_Line = EXTI_PinSource0|EXTI_PinSource1;
         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  //EXTI_Trigger_Rising_Falling
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
   EXTI_Init(&EXTI_InitStructure);
        
        
         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource8);
         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB,EXTI_PinSource9);
         EXTI_ClearITPendingBit(EXTI_Line8);
        EXTI_ClearITPendingBit(EXTI_Line9);
         EXTI_InitStructure.EXTI_Line = EXTI_PinSource8|EXTI_PinSource9;
         EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;  //EXTI_Trigger_Rising_Falling
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;
   EXTI_Init(&EXTI_InitStructure);
        
        
        //EXTI_GenerateSWInterrupt(EXTI_Line1);
        
        
  /* ----------------USART1 IRQ Channel configuration----------------- */
  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 2;//0-3£ºÖ»ÓÐ4¸öÓÅÏȼ¶  4¸ö¿É±à³ÌµÄÓÅÏȼ¶( ʹÓÃÁË2 λµÄÖжÏÓÅÏȼ¶)
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
        /* ----------------TIM3_IRQn  Channel configuration----------------- */
  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 1;//0-3£ºÖ»ÓÐ4¸öÓÅÏȼ¶  4¸ö¿É±à³ÌµÄÓÅÏȼ¶( ʹÓÃÁË2 λµÄÖжÏÓÅÏȼ¶)
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
/* ----------------TIM6_IRQn  Channel configuration----------------- */
  NVIC_InitStructure.NVIC_IRQChannel = EXTI0_1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 0;//0-3£ºÖ»ÓÐ4¸öÓÅÏȼ¶  4¸ö¿É±à³ÌµÄÓÅÏȼ¶( ʹÓÃÁË2 λµÄÖжÏÓÅÏȼ¶)
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
          NVIC_InitStructure.NVIC_IRQChannel = EXTI4_15_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPriority = 3;//0-3£ºÖ»ÓÐ4¸öÓÅÏȼ¶  4¸ö¿É±à³ÌµÄÓÅÏȼ¶( ʹÓÃÁË2 λµÄÖжÏÓÅÏȼ¶)
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);
  


}

void EXTI0_1_IRQHandler(void)
{
        u8 a=1;
        if((EXTI->PR & EXTI_Line1) != RESET)  //EXTI9?????
    {
  a=1;EXTI_ClearITPendingBit(EXTI_Line1);//????
   }
        if((EXTI->PR & EXTI_Line0) != RESET)  //EXTI9?????
    {
a=1;EXTI_ClearITPendingBit(EXTI_Line0);//????
   }

   
        

   

}

void EXTI4_15_IRQHandler(void)
{
        if((EXTI->PR & EXTI_Line8) != RESET)  //EXTI9?????
    {
;
   }

   EXTI_ClearITPendingBit(EXTI_Line8);//????
         if((EXTI->PR & EXTI_Line9) != RESET)  //EXTI9?????
    {
;
   }

   EXTI_ClearITPendingBit(EXTI_Line9);//????
         
        
}


        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 |GPIO_Pin_9; //¹Ü½ÅºÅ
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //ËÙ¶È
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF; //ÊäÈë Êä³ö ¸´Óà ģÄâ
//        GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;//ÍÆÍìÊä³ö  ¿ªÂ©Êä³ö
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//ÉÏÀ­  ÏÂÀ­
        GPIO_Init(GPIOB, &GPIO_InitStructure);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1; //¹Ü½ÅºÅ
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //ËÙ¶È
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF; //ÊäÈë Êä³ö ¸´Óà ģÄâ
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//ÍÆÍìÊä³ö  ¿ªÂ©Êä³ö
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;//ÉÏÀ­  ÏÂÀ­
        GPIO_Init(GPIOF, &GPIO_InitStructure);

上面是我单买,我需要PF0.PF1.Pb8.Pb9.能外部进入中断,但是现在只有pf0能进入中断,

另外程序能识别PF1.Pb8.Pb9.的电平变化,就是进步了PF1.Pb8.Pb9.的中断,。
谁能帮我解决,一下,红包200元吧,我也不知道给多少,整个程序在附件里。。。
另外:单片机使用的内部晶振,PF0和1是晶振接口,我也注意到了,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| taijing33 发表于 2018-7-17 12:20 | 显示全部楼层
ayb_ice 发表于 2018-7-17 13:03 | 显示全部楼层
现在都是HAL库了,这个过时了
 楼主| taijing33 发表于 2018-7-17 14:17 | 显示全部楼层
ayb_ice 发表于 2018-7-17 13:03
现在都是HAL库了,这个过时了

不大用stm32。偶尔用一次。
rand2015 发表于 2018-7-17 16:58 | 显示全部楼层
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF; //ÊäÈë Êä³ö ¸´Óà ģÄâ////// GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF; //ÊäÈë Êä³ö ¸´Óà ģÄâ

不能设置为GPIO_Mode_AF,  

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN或 GPIO_PuPd_UP;
 楼主| taijing33 发表于 2018-7-17 17:41 | 显示全部楼层
rand2015 发表于 2018-7-17 16:58
GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF; //ÊäÈë Êä³ö ¸´Óà ģÄâ////// GPIO_InitS ...

不行呢。郁闷
jcdzxh 发表于 2018-7-17 22:26 来自手机 | 显示全部楼层
我接招,明天弄
jcdzxh 发表于 2018-7-17 22:32 来自手机 | 显示全部楼层
昨天专门测试过,af也能触发外中断,方法是定时器驱动pwm,pwm脚配置外中断,完全没问题
 楼主| taijing33 发表于 2018-7-18 07:37 | 显示全部楼层
jcdzxh 发表于 2018-7-17 22:26
我接招,明天弄

谢谢,
jcdzxh 发表于 2018-7-18 07:47 来自手机 | 显示全部楼层
030f4没有b8,b9哦
eydj2008 发表于 2018-7-18 07:55 | 显示全部楼层
这是传说中的 大花?  200红包  发群里来
小白123456 发表于 2018-7-18 09:10 | 显示全部楼层
这个楼主找个例程看看就好了。自己解决了才是最好的。
jcdzxh 发表于 2018-7-18 09:22 | 显示全部楼层
本帖最后由 jcdzxh 于 2018-7-18 09:29 编辑

用070C8试过了没有问题,
我这个板PB8点灯了,就没有用P8测试触发简单测试触发、清中断,没有去抖处理,加上GPIO是悬空,上升沿触发,
用表笔碰触发,所以碰一次会触发多次,正常现象,懂的自然懂。需要帮助加Q:1720-33333


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
henangongda123 发表于 2018-7-18 16:29 | 显示全部楼层
可惜不会STM32
icecut 发表于 2018-7-18 18:24 | 显示全部楼层
看样这200块钱还不好转...博弈开始了...先付钱还是先交货????
是不是骗纸????
围观

评论

@taijing33 :你能发出去么....哈哈哈  发表于 2018-7-19 16:07
这个问题对用过得人来说,应该是举手之劳。悬赏是为了为了增加大家的积极性,当然200块不多。 但是谁解决了 肯定给钱。都是同行做技术的,这点信用肯定有  发表于 2018-7-19 08:23
caijie001 发表于 2018-7-18 19:10 | 显示全部楼层
一言不合就放码过来
GEA 发表于 2018-7-19 16:02 | 显示全部楼层
打不开程序 尴尬
 楼主| taijing33 发表于 2018-8-28 07:27 | 显示全部楼层
EXTI_InitStructure.EXTI_Line = EXTI_PinSource8|EXTI_PinSource9;应该换成 EXTI_InitStructure.EXTI_Line = EXTI_Line 8|EXTI_Line 9;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

162

主题

364

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部