<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天內不再提示

STM32CubeMX的外部中斷的使用

撞上電子 ? 2023-11-26 08:00 ? 次閱讀

啥是中斷?中斷是指計算機運行過程中,出現某些意外情況需主機干預時,機器能自動停止正在運行的程序并轉入處理新情況的程序,處理完畢后又返回原被暫停的程序繼續運行。

舉個例子:

類比一下

在實際的代碼中,HAL庫的中斷處理較為復雜:startup_stm32f103xb.s通過匯編注冊了中斷處理函數EXTI1_IRQHandler(),在stm32f1xx_it.c中,EXTI_IRQHandler()引用了HAL庫的處理函數HAL_GPIO_EXTI_IRQHandler(),其功能主要為判斷具體的中斷原因,并調用對應的中斷回調函數:HAL_GPIO_EXTI_Callback()。用戶可以自己重聲明中斷回調函數(HAL_GPIO_EXTI_Callback()),在其中寫入自己的用戶邏輯,不出意外的話,你這時候可能會有點懵。上圖!

中斷處理函數寫在EXTI_IRQHandler()或HAL_GPIO_EXTI_Callback()皆可,不過HAL_GPIO_EXTI_Callback()需要重新聲明,比如:

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin){ if(HAL_GetTick()-t>30) { if(GPIO_Pin == GPIO_PIN_1) { duty_cycle=duty_cycle+100; __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_4,duty_cycle); } if(GPIO_Pin == GPIO_PIN_2) { duty_cycle=duty_cycle-100; __HAL_TIM_SetCompare(&htim1,TIM_CHANNEL_4,duty_cycle); } } t=HAL_GetTick();}

對于代碼的意思不必理會,只需知道這些是自己按需求寫的,下面開始連接硬件

以下是實操工程:

1,配置引腳

2,使能外部中斷

3,點擊右上角GENERATE CODE生成代碼



Hal_GPIO_TogglePin()這個函數可以反轉引腳電平,以控制小燈亮滅,多加的那幾行代碼用來做一個簡單的消抖,然后編譯,下載。如果沒出問題的話,每按一次按鍵,燈都會改變一次亮滅狀態,上面用的是xxxit.c中的Handler函數,下面試一試Callback函數,注釋掉剛才加的代碼,在main.c中添加如下代碼:


編譯,下載,運行,效果應該跟剛才一樣,下面試一下TIM。


搞完后,小燈應該每秒閃爍5次。注意:

中斷里不要使用延時函數Hal_Delay()

TIM中斷要手動開啟(Hal_TIM_Base_Start_IT())

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2239

    文章

    10671

    瀏覽量

    348743
  • 程序
    +關注

    關注

    114

    文章

    3631

    瀏覽量

    79541
  • 機器
    +關注

    關注

    0

    文章

    756

    瀏覽量

    40491
收藏 人收藏

    評論

    相關推薦

    STM8CubeMXSTM32CubeMX功能一樣嗎?

    STM8CubeMXSTM32CubeMX功能一樣嗎?
    的頭像 發表于 10-31 16:59 ?1196次閱讀
    STM8<b class='flag-5'>CubeMX</b>和<b class='flag-5'>STM32CubeMX</b>功能一樣嗎?

    基于STM32CubeMX開發U盤訪問應用

    電子發燒友網站提供《基于STM32CubeMX開發U盤訪問應用.pdf》資料免費下載
    發表于 09-25 09:19 ?2次下載
    基于<b class='flag-5'>STM32CubeMX</b>開發U盤訪問應用

    基于STM32U5 的 STM32CubeMX環境搭建

    基于STM32U5 的 STM32CubeMX環境搭建
    的頭像 發表于 09-21 17:35 ?900次閱讀
    基于<b class='flag-5'>STM32</b>U5 的 <b class='flag-5'>STM32CubeMX</b>環境搭建

    STM32CubeMX的配置和C代碼的生成

    電子發燒友網站提供《STM32CubeMX的配置和C代碼的生成.pdf》資料免費下載
    發表于 09-20 09:53 ?4次下載
    <b class='flag-5'>STM32CubeMX</b>的配置和C代碼的生成

    STM32WL使用STM32CubeMX創建LoRa節點應用

    電子發燒友網站提供《STM32WL使用STM32CubeMX創建LoRa節點應用.pdf》資料免費下載
    發表于 09-19 14:46 ?1次下載
    <b class='flag-5'>STM32</b>WL使用<b class='flag-5'>STM32CubeMX</b>創建LoRa節點應用

    STM32CubeMx配置USART1增加打印功能

    STM32CubeMx配置USART1增加打印功能
    的頭像 發表于 08-22 10:32 ?668次閱讀
    <b class='flag-5'>STM32CubeMx</b>配置USART1增加打印功能

    通過STM32CubeMX制作外部Flash的燒寫驅動(.stdlr)

    電子發燒友網站提供《通過STM32CubeMX制作外部Flash的燒寫驅動(.stdlr).pdf》資料免費下載
    發表于 08-01 11:12 ?4次下載
    通過<b class='flag-5'>STM32CubeMX</b>制作<b class='flag-5'>外部</b>Flash的燒寫驅動(.stdlr)

    STM32CUBEMX開發GD32F303

    在這使用STM32CUBEMX進行配置STM32F103,移植到兆易創新GD32F303,然后進行測試。
    的頭像 發表于 07-27 09:32 ?960次閱讀
    <b class='flag-5'>STM32CUBEMX</b>開發GD32F303

    STM32CUBEMX開發GD32F303(15)----外部中斷EXTI

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 使用外部中斷EXTI進行驅動LED。
    的頭像 發表于 07-26 15:53 ?830次閱讀
    <b class='flag-5'>STM32CUBEMX</b>開發GD32F303(15)----<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>EXTI

    STM32CubeMx入門教程(4):PWM應用

    導語“使用STM32CubeMx配置定時器輸出PWM波,生成初始化代碼?!?/div>
    發表于 07-11 15:23 ?903次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(4):PWM應用

    STM32CubeMx入門教程(3):定時器的使用

    導語“ 使用STM32CubeMx 生成初始化定時器代碼,實現定時器特定定時”
    發表于 07-11 15:22 ?2319次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(3):定時器的使用

    STM32CubeMx入門教程(1):點亮LED

    “使用stm32cubeMX 工具進行代碼生成,以LED點燈為例”
    發表于 07-11 14:56 ?2176次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(1):點亮LED

    STM32CubeMX簡介和安裝使用方法

    STM32CubeMX 是 ST 意法半導體近幾年來大力推薦的STM32 芯片圖形化配置工具,目的就是為了方便開發者, 允許用戶使用圖形化向導生成C 初始化代碼,可以大大減輕開發工作,時間和費用,提高開發效率。STM32CubeMX
    發表于 06-07 15:43 ?1.4w次閱讀
    <b class='flag-5'>STM32CubeMX</b>簡介和安裝使用方法

    STM32CubeMx外部中斷基本使用方法

    第一步:現在STM32CubeMx 中配置所需要IO口外部中斷模式。
    發表于 05-31 15:32 ?2833次閱讀
    <b class='flag-5'>STM32CubeMx</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>基本使用方法

    STM32CubeMx基本使用方法

    第一步:安裝STM32CubeMx軟件,詳細安裝步驟若有不清楚的可以自行百度,或私聊我,這里不做詳細介紹!
    發表于 05-31 15:29 ?2471次閱讀
    <b class='flag-5'>STM32CubeMx</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>