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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3323|回復: 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精品中文字幕一区二区三区 | 亚洲欧洲成人av每日更新 | 请别相信他免费喜剧电影在线观看 | 中文字幕男人的天堂 | 国产区免费视频 | 久久中文高清 | 五月激情婷婷在线 | 欧美久久一区 | 成人三级在线观看 | 黑人中文字幕一区二区三区 | 久久三级影院 | 亚洲精品一区二三区不卡 | 国产精品久久久久久久久免费樱桃 | 中文字幕 在线观看 | 亚洲天堂日韩精品 | www.97zyz.com| 日一区二区 | 精品久久久久久久 | 午夜手机在线 | 亚洲精品视频一区二区三区 | av资源中文在线天堂 | 日韩一二区 | 欧美日韩一区不卡 | 91视频在线观看免费 | 国产精品一区在线观看 | 在线一级片 | 欧美成人一区二区 | 成人国产精品久久 | 成人影院网站ww555久久精品 | 91新视频 | 久久久国产一区二区三区 | 一级黄色片在线免费观看 | 亚洲区一区二 | 91婷婷韩国欧美一区二区 | 国内精品久久影院 | 欧美精品一区二区三区在线播放 | 99re在线视频 | 中文字幕av网址 | www.黄色片视频 |