<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32基礎知識:中斷系統

CHANBAEK ? 來源:上下求索電子er ? 作者:上下求索電子er ? 2023-10-24 15:17 ? 次閱讀

中斷系統

1 數據傳輸方式

  • 無條件傳輸處理器不必了解外部設備狀態,直接進行數據傳輸,用于指示燈和按鍵等簡單設備.。
  • 查詢方式 :傳輸前,一方先查詢另一方的狀態,若已經準備好就傳輸,否則就繼續查詢。
  • 中斷方式 :一方通過申請中斷的方式與另一方進行數據傳輸,收發雙方可以并行工作。
  • 直接存儲器訪問 :處理器內部建立片內外設和內存之間的數據傳輸通道,傳輸過程不需要處理器參與。

2 中斷系統的基本概念

2.1 中斷全過程

  • 中斷發生:CPU在處理某一事件A時,發生了另一事件B,請求CPU迅速去處理。
  • 中斷處理: CPU暫停當前的工作,轉去處理事件B。
  • 中斷返回: 當CPU將事件B處理完畢后,再回到事件A中被暫停的地方繼續處理事件A。

圖片

2.2 中斷的作用

  • 速度匹配: 可以解決快速的CPU與慢速的外部設備之間傳送數據的矛盾。
  • 分時操作: CPU可以分時為多個外部設備服務,提高計算機的利用率。
  • 實時響應: CPU能夠及時處理應用系統的隨機事件,增強系統的實時性。
  • 可靠性高: CPU可以處理設備故障及掉電等突發事件,提高系統可靠性。

2.3 中斷優先級

處理器根據不同中斷的重要程序設置不同的優先等級。

不同優先級中斷的處理原則是: 高級中斷可以打斷低級中斷;低級中斷不能打斷高級中斷 。

圖片

2.4 中斷向量

  • 中斷服務程序: 在響應一個特定中斷的時候,處理器會執行一個函數,該函數一般稱為中斷處理程序或者中斷服務程序。
  • 中斷向量: 中斷服務程序在內存中的入口地址稱為中斷向量。
  • 中斷向量表: 把系統中所有的中斷向量集中起來放到存儲器的某一區。
  • 查找中斷向量:
    • 編號:計算機系統對每一個中斷源進行編號,這個號碼稱為中斷類型號。
    • 查表:根據中斷類型號,到中斷向量表中找到對應的表項。
    • 執行:取出表項內容,即該中斷源對應的中斷服務程序地址,進入該程序執行相應操作。

2.5 中斷響應過程

  1. 中斷源發出中斷請求。
  2. 判斷處理器是否允許中斷,以及該中斷源是否被屏蔽。
  3. 中斷優先級排隊。
  4. 處理器暫停當前程序,保護斷點地址和處理器的當前狀態,根據中斷類型號,查找中斷向量表,轉到對應的中斷服務程序。
  5. 執行中斷服務程序。
  6. 恢復被保護的狀態,執行中斷返回指令,回到被中斷的程序。

3 STM32微控制器中斷系統

3.1 基本概念

  • 中斷: 中斷是由內核外部產生的,一般由硬件引起,比如外設中斷和外部中斷等。
  • 異常: 異常通常是內核自身產生的,大多是軟件引起的,比如除法出錯異常、預取值失敗等。

3.2 NVIC嵌套向量中斷控制器

NVIC屬于Cortex-M內核的組件,管理所有的中斷和異常,為中斷源分配中斷通道

圖片

圖片

中斷向量表

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1_2
                DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
                DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     TIM4_IRQHandler            ; TIM4
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     I2C2_EV_IRQHandler         ; I2C2 Event
                DCD     I2C2_ER_IRQHandler         ; I2C2 Error
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     SPI2_IRQHandler            ; SPI2
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     USART3_IRQHandler          ; USART3
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTC_Alarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
__Vectors_End

3.3 中斷通道

微控制器片內集成了很多外設,對于單個外設而言,它通常具備若干個可以引起中斷的中斷源,而該外設的所有中斷源只能通過指定的中斷通道向內核申請中斷。

以STM32F103芯片為例,它支持43個可屏蔽中斷通道(不包括16個Cortex-M3的中斷線),已經固定分配給相應的片內外設。由于中斷源數量較多,而中斷通道有限,會出現多個中斷源共享同一個中斷通道的情況。

3.4 中斷優先級

  • NVIC中有一個8位中斷優先級寄存器NVIC_IPR,理論上可以配置0~255共256級中斷。
  • STM32只使用了其中的高4位,并分成搶占優先級子優先級兩組。

中斷嵌套:

多個中斷同時提出中斷申請時

  • 先比較搶占優先級,搶占優先級高的中斷先執行。
  • 如果搶占優先級相同,則比較子優先級。
  • 二者都相同時,比較中斷編號。編號越小,優先級越高。中斷編號位于芯片頭文件中。

STM32中斷優先級分組

圖片

HAL庫初始化函數HAL_Init將優先級分組設置為第4組,即有0~15,共16級搶占優先級,沒有子優先級。編號越小的優先級越高:0號為最高,15號為最低。

3.5 EXIT外部中斷控制器

圖片

GPIO引腳的外部中斷

觸發方式:

  • 上升沿觸發
  • 下降沿觸發
  • 雙邊沿觸發

引腳分組:

  • 尾號相同的引腳一組,接入1個外部中斷線。
  • 同組引腳只能有一個設置為外部中斷功能。

中斷通道:

  • EXTI0~EXIT4分別具有獨立的中斷通道
  • EXTI5~EXIT9共享同一個中斷通道
  • EXTI5~EXIT9共享同一個中斷通道

圖片

4 HAL庫中斷處理流程

4.1 編程步驟

在STM32CubeMX中完成

  1. 設置中斷觸發條件
  2. 設置中斷優先等級
  3. 設能外設中斷

HAL庫的接口函數完成

  1. 清除中斷標志
  2. 編寫中斷服務程序

4.2 HAL庫對中斷的封裝處理

  • 統一規定處理各個外設的中斷服務程序HAL_PPP_IRQHandler。
  • 在中斷服務程序HAL_PPP_IRQHandler完成了中斷標志的判斷和清除。
  • 將中斷中需要執行的操作以回調函數的形式提供給用戶。

啟動文件startup_stm32fxxx.s

  • 該文件存放在MDK-ARM組中。在該文件中,預先為每個中斷編寫了一個中斷服務程序,只是這些中斷服務程序都是死循環,目的只是 初始化中斷向量表 ;
  • 中斷服務程序的屬性定義為“weak”。weak屬性的函數表示:如果該函數沒有在其他文件中定義,則使用該函數;如果用戶在其他地方定義了該函數,則使用用戶定義的函數。

中斷服務程序文件:stm32fxxx_it.c

  • 該文件存放在User組中,用于 存放各個中斷的中斷服務程序 ;

  • 在使用CubeMX軟件進行初始化配置時,如果使能了某一個外設的中斷功能,那么在生成代碼時,相對應的外設中斷服務程序HAL_PPP_IRQHandler就會自動添加到該文件中,用戶只需要在該函數中添加相應的中斷處理代碼即可。
    外部中斷所對應的中斷服務程序

    外部中斷線中斷服務程序的函數名稱
    外部中斷線0(EXTI Line 0)EXTI0_IRQHandler
    外部中斷線1(EXTI Line 1)EXTI1_IRQHandler
    外部中斷線2(EXTI Line 2)EXTI2_IRQHandler
    外部中斷線3(EXTI Line 3)EXTI3_IRQHandler
    外部中斷線4(EXTI Line 4)EXTI4_IRQHandler
    外部中斷線5~9(EXTI Line[9:5])EXTI9_5_IRQHandler
    外部中斷線10~15(EXTI Line[15:10])EXTI15_10_IRQHandler

    例如

    /**
      * @brief This function handles EXTI line0 interrupt.
      */
    void EXTI0_IRQHandler(void)
    {
      /* USER CODE BEGIN EXTI0_IRQn 0 */
    
      /* USER CODE END EXTI0_IRQn 0 */
      HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
      /* USER CODE BEGIN EXTI0_IRQn 1 */
    
      /* USER CODE END EXTI0_IRQn 1 */
    }
    

4.3 外部中斷處理流程

假設微控制器芯片為STM32F103,設置引腳PA0為外部中斷功能。當引腳PA0出現脈沖邊沿時,將觸發外部中斷。

由于外部中斷主要是利用GPIO引腳實現,因此外部中斷數據類型的定義放在stm32f1xx_hal_gpio.h文件中,外部中斷接口函數的實現放在stm32f1xx_hal_gpio.c文件中。

  1. 引腳初始化
    圖片
    成員變量Mode的取值范圍

    • GPIO_MODE_IT_RISING 上升沿觸發
    • GPIO_MODE_IT_FALLING 下降沿觸發
    • GPIO_MODE_IT_RISING_FALLING 雙邊沿觸發
  2. 外部中斷通用處理函數HAL_GPIO_EXTI_IRQHandler

    /**
      * @brief  This function handles EXTI interrupt request.
      * @param  GPIO_Pin: Specifies the pins connected EXTI line
      * @retval None
      */
    void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
    {
      /* EXTI line interrupt detected */
      if (__HAL_GPIO_EXTI_GET_IT(GPIO_Pin) != 0x00u)
      {
        __HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);
        HAL_GPIO_EXTI_Callback(GPIO_Pin);
      }
    }
    
    函數原型void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin)
    功能描述作為所有外部中斷發生后的通用處理函數
    入口參數GPIO_Pin:連接到對應外部中斷線的引腳,范圍是 GPIO_PIN_0~GPIO_PIN_15
    返回值
    注意事項1. 所有外部中斷服務程序均調用該函數完成中斷處理2. 函數內部根據GPIO_Pin的取值判斷中斷源,并清除對應外部中斷線的中斷標志3. 函數內部調用外部中斷回調函數HAL_GPIO_EXTI_Callback完成實際的處理任務4. 該函數由CubeMX自動生成
  3. 外部中斷回調函數HAL_GPIO_EXTI_Callback

    /**
      * @brief  EXTI line detection callbacks.
      * @param  GPIO_Pin: Specifies the pins connected EXTI line
      * @retval None
      */
    __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    {
      /* Prevent unused argument(s) compilation warning */
      UNUSED(GPIO_Pin);
      /* NOTE: This function Should not be modified, when the callback is needed,
               the HAL_GPIO_EXTI_Callback could be implemented in the user file
       */
    }
    
    函數原型void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
    功能描述外部中斷回調函數,用于處理具體的中斷任務
    入口參數GPIO_Pin:連接到對應外部中斷線的引腳,范圍是 GPIO_PIN_0~GPIO_PIN_15
    返回值
    注意事項1. 該函數由外部中斷通用處理函數HAL_GPIO_EXTI_IRQHandler調用,完成所有外部中斷的任務處理2. 函數內部先根據GPIO_Pin的取值來判斷中斷源,然后執行對應的中斷任務3. 該函數由用戶根據實際需求編寫

任務實踐

基于STM32F103C8T6,開發板原理圖

圖片

利用按鍵KEY1改變指示燈LED1的閃爍頻率,閃爍頻率設置為3檔:

  • 初始狀態時,LED1按照1Hz的頻率閃爍;
  • 第一次按鍵后,LED1按照5Hz的頻率閃爍;
  • 第二次按鍵后,LED1按照20Hz的頻率閃爍,并重復上述過程。

注:本任務例程使用的開發板,LED1與STM32的PA1相連接,KEY1與PA0相連接。KEY1原理圖如下:

圖片

使用按鍵時,需要設置PA0為輸入上拉模式,這樣在KEY1沒有按下時,PA0可以讀取到高電平,KEY1按下時PA0可以讀取到低電平。

  1. 配置PA0為GPIO_EXIT0,PA1為GPIO_Output
    圖片
  2. PA1保持默認GPIO輸出模式即可
    圖片
  3. PA0配置為下降沿觸發,上拉模式
    圖片
  4. 使能外部中斷線
    圖片
  5. 配置中斷優先級分組為第四組16級搶占優先級,沒有子優先級
    圖片

以上步驟生成如下代碼:

  • stm32f1xx_hal_gpio.c中生成GPIO引腳配置代碼,并在main.c中調用

    void MX_GPIO_Init(void)
    {
    
      GPIO_InitTypeDef GPIO_InitStruct = {0};
    
      /* GPIO Ports Clock Enable */
      __HAL_RCC_GPIOA_CLK_ENABLE();
      __HAL_RCC_GPIOB_CLK_ENABLE();
    
      /*Configure GPIO pin Output Level */
      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, GPIO_PIN_RESET);
    
      /*Configure GPIO pin : PA0 */
      GPIO_InitStruct.Pin = GPIO_PIN_0;
      GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
      /*Configure GPIO pin : PA1 */
      GPIO_InitStruct.Pin = GPIO_PIN_1;
      GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
      /* EXTI interrupt init*/
      HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
      HAL_NVIC_EnableIRQ(EXTI0_IRQn);
    
    }
    
    • 開啟外設時鐘RCC
    • 配置PA0,PA1兩個引腳結構體
    • 設置EXTI0中斷優先級為0,并使能這個中斷
  • stm32fxxx_it.c中生成外設中斷服務程序

    /**
      * @brief This function handles EXTI line0 interrupt.
      */
    void EXTI0_IRQHandler(void)
    {
      /* USER CODE BEGIN EXTI0_IRQn 0 */
    
      /* USER CODE END EXTI0_IRQn 0 */
      HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
      /* USER CODE BEGIN EXTI0_IRQn 1 */
    
      /* USER CODE END EXTI0_IRQn 1 */
    }
    
  1. 編寫程序
    main.c中定義指示燈閃爍頻率,0代表1Hz,1代表5Hz,2代表20Hz

    /* Private variables ---------------------------------------------------------*/
    
    /* USER CODE BEGIN PV */
    volatile uint8_t Speed = 0;
    /* USER CODE END PV */
    

    main.c中編寫應用代碼

    /* USER CODE BEGIN 3 */
        if (Speed == 0)
        {
          HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
          HAL_Delay(1000);
        }
        else if (Speed == 1)
        {
          HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
          HAL_Delay(200);
        }
        else
        {
          HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
          HAL_Delay(50);
        }
      }
      /* USER CODE END 3 */
    

    main.c中外部中斷回調函數HAL_GPIO_EXTI_Callback

    /* USER CODE BEGIN 4 */
     void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
     {
       if(GPIO_Pin == GPIO_PIN_0)
       {
         Speed++;
         if (Speed == 3)
         {
           Speed = 0;
         }
       }
     }
     /* USER CODE END 4 */
    
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6868

    瀏覽量

    148297
  • 處理器
    +關注

    關注

    68

    文章

    18538

    瀏覽量

    223669
  • STM32
    +關注

    關注

    2245

    文章

    10688

    瀏覽量

    349646
  • 中斷系統
    +關注

    關注

    1

    文章

    96

    瀏覽量

    60916
收藏 人收藏

    評論

    相關推薦

    嵌入式系統軟硬件基礎知識大全

    嵌入式系統是現代科技發展的一個重要分支,廣泛應用于工業控制、消費電子、醫療設備、汽車電子等領域。本文試圖全面解析嵌入式系統的軟基礎知識,以期讓讀者對這一技術有更深入的了解。嵌入式系統
    發表于 05-09 14:12

    射頻與微波基礎知識

    射頻與微波基礎知識
    的頭像 發表于 01-16 10:05 ?381次閱讀
    射頻與微波<b class='flag-5'>基礎知識</b>

    stm32中斷怎么處理的

    STM32是一款非常強大的微控制器系列,具有豐富的外設和功能。中斷STM32中非常重要的部分,能夠幫助我們提高系統的響應速度和效率。本文將詳細介紹
    的頭像 發表于 01-02 17:35 ?1463次閱讀

    電氣技術基礎知識

    電氣技術基礎知識
    的頭像 發表于 12-14 09:11 ?986次閱讀
    電氣技術<b class='flag-5'>基礎知識</b>

    電子元器件的基礎知識

    電子元器件的基礎知識
    的頭像 發表于 12-04 10:42 ?3689次閱讀
    電子元器件的<b class='flag-5'>基礎知識</b>

    嵌入式開發系統基礎知識

    電子發燒友網站提供《嵌入式開發系統基礎知識.pdf》資料免費下載
    發表于 11-17 10:59 ?0次下載
    嵌入式開發<b class='flag-5'>系統</b><b class='flag-5'>基礎知識</b>

    STM32如何配置外部中斷?STM32外部中斷配置步驟

    STM32如何配置外部中斷?STM32外部中斷配置步驟? 作為一款現代化的微控制器,STM32系列芯片在各種應用場合中廣泛應用。其中最常見的
    的頭像 發表于 10-26 17:47 ?2365次閱讀

    STM32學習筆記一外部中斷

    STM32 的每個 IO 都可以作為外部中斷中斷輸入口。STM32F103 的中斷控制器支持 19 個外部
    的頭像 發表于 10-24 14:12 ?825次閱讀
    <b class='flag-5'>STM32</b>學習筆記一外部<b class='flag-5'>中斷</b>

    LDO基礎知識:噪聲-降噪引腳如何提高系統性能

    LDO基礎知識:噪聲-降噪引腳如何提高系統性能
    的頭像 發表于 09-18 10:58 ?887次閱讀
    LDO<b class='flag-5'>基礎知識</b>:噪聲-降噪引腳如何提高<b class='flag-5'>系統</b>性能

    STM32微控制器的安全基礎知識

    本應用筆記介紹了 STM32 微控制器的安全基礎知識。微控制器中的安全性涵蓋了幾個方面,其中包括固件知識產權保護、設備私有數據保護以及服務執行保證。在物聯網的背景下,安全性更加重要。大量聯網器件成為
    發表于 09-07 07:36

    運放-2. 基礎知識

    運放基礎知識
    的頭像 發表于 08-18 10:59 ?2180次閱讀
    運放-2. <b class='flag-5'>基礎知識</b>

    EMC基礎知識講解解析

    EMC基礎知識分享
    發表于 06-30 15:37 ?11次下載

    STM32裸機編程的基礎知識(3)

    STM32F429 MCU 啟動時,它會從 flash 存儲區最前面的位置讀取一個叫作 “向量表” 的東西?!跋蛄勘怼?的概念所有 ARM MCU 都通用,它是一個包含 32 位中斷處理程序地址
    發表于 06-28 15:35 ?292次閱讀
    <b class='flag-5'>STM32</b>裸機編程的<b class='flag-5'>基礎知識</b>(3)

    STM32裸機編程的基礎知識(1)

    這個系列將介紹 STM32 裸機編程的基礎知識,以便更好地理解 STM32Cube、Keil 等框架和 IDE 是如何工作的。本指南完全從頭開始,只需要編譯器和芯片數據手冊,而不依賴任何其它軟件工具和框架。
    發表于 06-28 15:14 ?419次閱讀
    <b class='flag-5'>STM32</b>裸機編程的<b class='flag-5'>基礎知識</b>(1)

    STM32中斷系統的工作流程

    一、前言 在之前的STM32中斷系統理論基礎知識之基本原理及NVIC中,分別中斷的基本原理,中斷的管理機制和
    的頭像 發表于 06-22 09:17 ?1833次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b><b class='flag-5'>系統</b>的工作流程
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>