久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3187|回復: 1
打印 上一主題 下一主題
收起左側

stm32按鍵中斷程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:225587 發表于 2017-8-7 21:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是32基礎的按鍵中斷程序
全部資料下載地址:
實驗6 按鍵中斷.rar (287.45 KB, 下載次數: 51)

  1. /******************** 尚學科技 **************************
  2. * 實驗平臺:開拓者STM32開發板
  3. * 庫版本  :ST3.5.0
  4. * 作者    :尚學科技團隊
  5. * 本程序只供學習使用,未經作者許可,不得用于其它任何用途
  6. *版權所有,盜版必究。
  7. **********************************************************************************/

  8. #include "exti.h"
  9. #include "LED.h"
  10. #include "delay.h"


  11. /*
  12. * 函數名:NVIC_Configuration
  13. * 描述  :配置嵌套向量中斷控制器NVIC
  14. * 輸入  :無
  15. * 輸出  :無
  16. * 調用  :內部調用
  17. */
  18. static void NVIC_Configuration(void)
  19. {
  20.                 NVIC_InitTypeDef NVIC_InitStructure;
  21.          /*設置NVIC中斷分組2:2位搶占優先級,2位響應優先級*/
  22.           NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);       
  23.           /*使能按鍵所在的外部中斷通道*/
  24.           NVIC_InitStructure.NVIC_IRQChannel = EXTI4_IRQn;
  25.     /*設置搶占優先級,搶占優先級設為2*/       
  26.           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;       
  27.           /*設置子優先級,子優先級設為1*/
  28.           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;               
  29.     /*使能外部中斷通*/
  30.           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;       
  31.      /*根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器*/               
  32.           NVIC_Init(&NVIC_InitStructure);
  33.        
  34.        
  35.                   /*使能按鍵所在的外部中斷通道*/
  36.           NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn;
  37.     /*設置搶占優先級,搶占優先級設為2*/       
  38.           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;       
  39.           /*設置子優先級,子優先級設為1*/
  40.           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x03;               
  41.     /*使能外部中斷通*/
  42.           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;       
  43.      /*根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器*/               
  44.           NVIC_Init(&NVIC_InitStructure);
  45.        
  46.      /*使能按鍵所在的外部中斷通道*/
  47.           NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;                       
  48.            /*設置搶占優先級,搶占優先級設為2*/       
  49.           NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02;       
  50.           /*設置子優先級,子優先級設為2*/
  51.           NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;               
  52.            /*使能外部中斷通*/
  53.           NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;       
  54.      /*根據NVIC_InitStruct中指定的參數初始化外設NVIC寄存器*/       
  55.           NVIC_Init(&NVIC_InitStructure);           

  56. }


  57. /*
  58. * 函數名:EXTI_Config
  59. * 描述  :配置PA0,PA13,PA15為線中斷口,并設置中斷優先級
  60. * 輸入  :無
  61. * 輸出  :無
  62. * 調用  :外部調用
  63. */
  64. void EXTI_Config(void)
  65. {
  66.     GPIO_InitTypeDef GPIO_InitStructure;
  67.           EXTI_InitTypeDef EXTI_InitStructure;
  68.   
  69.     /*開啟外設時鐘*/
  70.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
  71.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE|RCC_APB2Periph_AFIO,ENABLE);

  72.     /*初始化 GPIOE3,GPIOE4  設置為上拉輸入*/
  73.           GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_4|GPIO_Pin_3;
  74.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  75.           GPIO_Init(GPIOE, &GPIO_InitStructure);
  76.     /* 初始化 GPIOA.0          設置為下拉輸入*/
  77.           GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_0;
  78.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;
  79.           GPIO_Init(GPIOA, &GPIO_InitStructure);

  80.     /*GPIOE4 中斷線配置*/
  81.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource4);
  82.    
  83.      /*GPIOE4 中斷初始化配置*/
  84.           EXTI_InitStructure.EXTI_Line=EXTI_Line4;
  85.           EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
  86.           EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  87.           EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  88.                 /*根據EXTI_InitStruct中指定的參數初始化外設EXTI寄存*/
  89.           EXTI_Init(&EXTI_InitStructure);         
  90.                
  91.                
  92.                    /*GPIOE3 中斷線配置*/
  93.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource3);
  94.    
  95.      /*GPIOE3 中斷初始化配置*/
  96.           EXTI_InitStructure.EXTI_Line=EXTI_Line3;
  97.           EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
  98.           EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
  99.           EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  100.                 /*根據EXTI_InitStruct中指定的參數初始化外設EXTI寄存*/
  101.           EXTI_Init(&EXTI_InitStructure);         

  102.   

  103.     /*GPIOA.0 中斷線配置*/
  104.           GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);
  105.    
  106.           /*GPIOA.0 中斷初始化配置*/
  107.           EXTI_InitStructure.EXTI_Line=EXTI_Line0;
  108.           EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;       
  109.           EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
  110.           EXTI_InitStructure.EXTI_LineCmd = ENABLE;
  111.                 /*根據EXTI_InitStruct中指定的參數初始化外設EXTI寄存器*/
  112.           EXTI_Init(&EXTI_InitStructure);               
  113.    
  114.                 /*配置中斷控制器NVIC*/
  115.     NVIC_Configuration();
  116.        
  117. }


復制代碼


評分

參與人數 1黑幣 +100 收起 理由
admin + 100

查看全部評分

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

使用道具 舉報

沙發
ID:588361 發表于 2021-3-19 10:37 | 只看該作者
樓主真給力,解決了新手對于中斷理解的問題,學到了!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91网站在线看 | 久草视频在 | 操一草| 男人天堂久久久 | 中文字幕精品一区久久久久 | 黄色综合 | 一区二区三区视频 | 北条麻妃一区二区三区在线视频 | 成年视频在线观看 | 超碰91在线 | 免费的一级视频 | www.日本三级| 欧美成人精品一区二区男人看 | 农村真人裸体丰满少妇毛片 | 亚洲视频一区二区三区 | 日韩另类视频 | 国产成人精品久久 | 欧美日韩亚洲一区 | 亚洲一区毛片 | 水蜜桃亚洲一二三四在线 | 人成在线 | 在线色 | 日韩美女一区二区三区在线观看 | 亚洲成人在线免费 | 日韩久久久久 | 国产一区在线免费 | 亚洲成人精品久久久 | 中文字幕在线免费观看 | 一区二区三区四区日韩 | 日韩中文字幕av | 成人午夜网站 | 亚洲精品免费观看 | 免费美女网站 | 久久精品成人 | 97精品视频在线 | 国产激情在线 | 久草久草久草 | 亚洲精品久久久久久久久久久 | 欧美精品一区二区三区在线播放 | 成年人在线视频 | 日韩久久精品 |