找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3885|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

STM32外部中斷無(wú)法觸發(fā)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:500189 發(fā)表于 2019-9-1 10:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. 以下是我外部中斷的函數(shù)  我就想問(wèn) 為什么外部中斷無(wú)法觸發(fā)呢   我直接都把引腳接3.3V了還是無(wú)法觸發(fā)   我IO口PDin4和5配置的都是下拉  PBin12和13配置的是上拉。 請(qǐng)問(wèn)為什么觸發(fā)不成功啊。。求教求教


  2. void EXTI0_IRQHandler(void)
  3. {
  4.         delay_ms(10);        //消抖
  5.         if(PDin(4)==1)
  6.         {
  7.                 left();
  8.         }
  9.         
  10.          EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE0上的中斷標(biāo)志位
  11. }        
  12. //外部中斷2服務(wù)程序
  13. void EXTI2_IRQHandler(void)
  14. {
  15.         delay_ms(10);        //消抖
  16.         if(PDin(5)==1)
  17.         {
  18.                 right();
  19.         }
  20.          EXTI_ClearITPendingBit(EXTI_Line2);//清除LINE2上的中斷標(biāo)志位
  21. }
  22. //外部中斷3服務(wù)程序
  23. void EXTI3_IRQHandler(void)
  24. {
  25.         delay_ms(10);        //消抖
  26.         if(PBin(12)==0)                                                
  27.         {
  28.                         stop();              
  29.                         chuansongdai_work(1);
  30.                         if(PBin(13)==0)
  31.                         {
  32.                                 chuansongdai_work(3);   //傳送帶停                        
  33.                         }                        
  34.         }
  35.         
  36.          EXTI_ClearITPendingBit(EXTI_Line3);  //清除LINE3上的中斷標(biāo)志位  
  37. }
  38. //外部中斷4服務(wù)程序
  39. void EXTI4_IRQHandler(void)
  40. {
  41.         delay_ms(10);        //消抖
  42.         
  43.         
  44.          EXTI_ClearITPendingBit(EXTI_Line4);//清除LINE4上的中斷標(biāo)志位  
  45. }
  46.            
  47. //外部中斷初始化程序
  48. //初始化PE2~4,PA0為中斷輸入.
  49. void EXTIX_Init(void)
  50. {
  51.         NVIC_InitTypeDef   NVIC_InitStructure;
  52.         EXTI_InitTypeDef   EXTI_InitStructure;
  53.         
  54.         //KEY_Init(); //按鍵對(duì)應(yīng)的IO口初始化

  55.         hongwai_init();  
  56.         huidu_init();
  57.         
  58.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//使能SYSCFG時(shí)鐘
  59.         

  60.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource12);//PE2 連接到中斷線2
  61.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOB, EXTI_PinSource13);//PE3 連接到中斷線3
  62.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource5);//PE4 連接到中斷線4
  63.         SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOD, EXTI_PinSource4);//PA0 連接到中斷線0
  64.         
  65.   /* 配置EXTI_Line0 */
  66.   EXTI_InitStructure.EXTI_Line = EXTI_Line0 | EXTI_Line4;//LINE0
  67.   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中斷事件
  68.   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿觸發(fā)
  69.   EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能LINE0
  70.   EXTI_Init(&EXTI_InitStructure);//配置
  71.         
  72.         /* 配置EXTI_Line2,3,4 */
  73.         EXTI_InitStructure.EXTI_Line = EXTI_Line2 | EXTI_Line3;
  74.   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中斷事件
  75.   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; //下降沿觸發(fā)
  76.   EXTI_InitStructure.EXTI_LineCmd = ENABLE;//中斷線使能
  77.   EXTI_Init(&EXTI_InitStructure);//配置

  78.         NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;//外部中斷0
  79.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;//搶占優(yōu)先級(jí)0
  80.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子優(yōu)先級(jí)2
  81.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中斷通道
  82.   NVIC_Init(&NVIC_InitStructure);//配置
  83.         
  84.         NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn;//外部中斷2
  85.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;//搶占優(yōu)先級(jí)0
  86.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子優(yōu)先級(jí)2
  87.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中斷通道
  88.   NVIC_Init(&NVIC_InitStructure);//配置
  89.         
  90.         
  91.         NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;//外部中斷3
  92.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;//搶占優(yōu)先1
  93.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子優(yōu)先級(jí)2
  94.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中斷通道
  95.   NVIC_Init(&NVIC_InitStructure);//配置
  96.         
  97.         
  98.         NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;//外部中斷4
  99.   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x01;//搶占優(yōu)先級(jí)1
  100.   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子優(yōu)先級(jí)2
  101.   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能外部中斷通道
  102.   NVIC_Init(&NVIC_InitStructure);//配置
  103.            
  104. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:174087 發(fā)表于 2019-9-2 09:51 | 只看該作者
用斷點(diǎn)調(diào)試一下,如果沒(méi)進(jìn)中斷就去找觸發(fā)的條件、中斷配置,從后往前推
回復(fù)

使用道具 舉報(bào)

板凳
ID:500189 發(fā)表于 2019-9-5 15:36 | 只看該作者
woshige 發(fā)表于 2019-9-2 09:51
用斷點(diǎn)調(diào)試一下,如果沒(méi)進(jìn)中斷就去找觸發(fā)的條件、中斷配置,從后往前推

已經(jīng)解決了  謝謝
回復(fù)

使用道具 舉報(bào)

地板
ID:680768 發(fā)表于 2020-1-3 22:54 | 只看該作者
1844952977 發(fā)表于 2019-9-5 15:36
已經(jīng)解決了  謝謝

樓主,你是怎么解決的?我也遇到和你一樣的問(wèn)題,謝謝!
回復(fù)

使用道具 舉報(bào)

5#
ID:232306 發(fā)表于 2020-5-14 14:40 | 只看該作者
1844952977 發(fā)表于 2019-9-5 15:36
已經(jīng)解決了  謝謝

小氣,只問(wèn)不大,咋解決的不說(shuō)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表