在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32L552開發板——外部中斷

STM32單片機 ? 來源:STM32單片機 ? 2020-05-29 17:07 ? 次閱讀

上回向大家介紹了如何使用GPIO口的輸出功能點亮一盞LED燈,以及使用GPIO口的輸入功能讀取按鍵的狀態控制LED的閃爍頻率,然鵝,獲取按鍵的狀態采用的是主循環查詢的方法,這有一個弊端,試想當主循環的循環周期非常長的時候,比如夸張點說要1秒,那就得一直按著按鍵等到程序掃描到按鍵的輸入引腳后才能放開,這個等待時間最長需要1秒,這是很糟糕的,我可沒有這個耐心去等,比如在將一個數從1調節到100的時候,那后果是可想而知的。為此,就有必要引入一個叫中斷的神奇東西,程序中的中斷,會把正在運行的普通程序或者低級的中斷服務程序打斷,先運行本中斷服務函數內的程序,就好比我們日常生活中的突發事件,你正在洗衣服,突然快遞小哥到你家門口了,你得放下手上的衣服先去取個快遞,總不能讓快遞小哥在門口等你把衣服洗完吧。中斷還有很多種分類,在普通的51單片機中有三類中斷共五個中斷源,分別是外部中斷0和1、定時器中斷0和1以及串口中斷,而在STM32中的中斷那可多了去了,比方說有GPIO外部中斷、定時器中斷、串口中斷、DMA中斷、ADC中斷等等等等,每個中斷都有它獨特的功能,而本次我們需要的就是這當中的GPIO外部中斷,好了,廢話不多說,接下來我們就來研究研究STM32L552的外部中斷是如何使用的。

評測內容

使用外部中斷獲取按鍵的狀態,并調節LED燈閃爍的頻率。

所需元件

1、STM32L552ZET6Q;

2、板載紅色LED(LD3);

3、板載藍色按鍵(USER)。

評測步驟 01

將按鍵引腳配置成外部中斷模式,打開上回創建的STM32CubeMX工程,將芯片的PC13引腳按照步驟配置成下圖所示的設置,第五步為設置程序中的引腳別名,可根據自己的需求進行設置

02

使能外部中斷并設置中斷優先級,按照下圖所示步驟及內容設置,中斷優先級可自己根據需要設置

03

保存工程并生成代碼工程。

04

打開代碼工程,發現main.c文件中的GPIO口配置函數多了如下兩行設置中山優先級和使能中斷的代碼

05

在stm32l5xx_it.c文件中也多了一段中斷服務函數的代碼

06

跳轉到HAL_GPIO_EXTI_IRQHandler函數的實現,該函數的內容如下

其中的HAL_GPIO_EXTI_Rising_Callback和HAL_GPIO_EXTI_Falling_Callback函數就是外部中斷的回調函數,兩個函數內分別有如下注釋:

意思是這兩個函數在用戶需要的時候可以在用戶文件上實現,實現的內容就是用戶需要本次中斷執行的內容。

07

回到main.c文件,添加如下函數的實現

USER_BUTTON為一個全局變量,在文件開頭進行定義:_Bool USER_BUTTON = 0;

08

在主函數的循環中添加如下代碼;

一切就緒,重新編譯連接并

下載到開發板上,按下按鍵觀察程序運行情況,還是跟上回的一樣,實現了使用外部中斷檢測按鍵對LED的閃爍頻率進行調節。

總結

得益于STM32CubeMX的強大功能以及HAL庫的完美包裝,外部中斷的實現似乎并沒有那么難(相比于標準固件庫來說真的是簡單了不少),只需要自己實現一個回調函數就好了,對快速開發是方便了不少。好了,本次評測就到此結束,感謝您的閱讀。

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

    關注

    242

    文章

    23602

    瀏覽量

    668785
  • 開發板
    +關注

    關注

    25

    文章

    5378

    瀏覽量

    100676
  • 外部中斷
    +關注

    關注

    1

    文章

    132

    瀏覽量

    16033

原文標題:分享 | 人生中的首塊STM32L552開發板——外部中斷

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32L552在實際應用中的功耗高于預期的原因是什么?如何解決?

    STM32L552在實際應用中的功耗高于預期。
    發表于 03-20 06:19

    為什么無法通過調試器連接到STM32L552

    無法通過調試器連接到STM32L552,或者編程失敗
    發表于 03-20 06:14

    無法從低功耗模式中正確喚醒STM32L552怎么辦?

    STM32L552無法從低功耗模式中正確喚醒
    發表于 03-20 08:07

    【NUCLEO-L552ZE-Q開發板試用連載】NUCLEO-L552ZE-Q開發板試用

    處理器產品的開發使用。評測計劃:1、根據ST官方給出的datasheet,熟悉NUCLEO_L552ZE_Q_STM32Nucleo_144 開發板的硬件資源,STM32L552微控制
    發表于 03-11 15:35

    【NUCLEO-L552ZE-Q開發板試用連載】+硬件介紹與初步上手

    價格便宜,因此受到很多人的歡迎。相比起以前的nucleo-144系列開發板,這塊開發板提供了一個新的接口—USB Type C,這個接口也是STM32L552提供的新接口之一。下面就由筆者向大家介紹這塊
    發表于 04-25 22:04

    【NUCLEO-L552ZE-Q開發板試用連載】+示例開發一:STM32L552與RK3399使用USB通信

    這個例子介紹一下STM32L552的USB功能的使用,在這里,STM32L552做USB Device,RK3399做USB Host首先在cubemx里面選上USB外設與USB的協議棧 然后USB
    發表于 04-25 22:44

    STM32L552如何交換閃存組?

    STM32L552 的 SWAP_BANK 有點在 eeprom 中,但我們想在自己的引導加載程序中動態交換閃存組,并且不想使 eeprom 的生命周期過期,在沒有 eeprom 設置的情況下交換內存的任何選項?
    發表于 12-01 06:33

    有沒有人讓USB在STM32L552上作為VCP運行?

    有沒有人讓 USB 在 STM32L552 上作為 VCP 運行?我們在通過 VCP 將 USB 連接到 PC 的情況下運行系統時遇到問題。我們使用 MXCube 5.6.1 版并使用 USB
    發表于 12-28 06:24

    關于STM32L552的功耗問題

    我們選用STM32L552 ,因為看指標,這款芯片的功耗很低,看指標 106 μA/MHz Run mode但是我們實測下來,2MHz的時候 電流為0.89mA16MHz的時候電流為2.8mA。差異
    發表于 08-07 09:14

    首次使用STM32L552開發板的一些步驟以及電腦系統和開發軟件

    帶著一顆追求新產品新功能的心以及試一試的態度,按要求在帖子里回復了自己的想法,沒想到結果被選中了,不得不說,這是我人生中的首次評測,內心無比的激動,也無比的忐忑,激動是因為我很榮幸地申請到了這次NUCLEO-L552ZE-Q開發板的評測資格
    的頭像 發表于 04-28 10:10 ?7834次閱讀

    STM32L552開發板——開發環境

    值得注意的是,只有安裝STM32CubeMX的5.6.0版本,才能有對STM32L5系列微控制器的支持,而社區目前能下載到的為5.3.0版本,所以需要到ST官網下載,我這里給大家貼上下載地址:STM32CubeMX下載,方便大家
    的頭像 發表于 05-29 17:09 ?4612次閱讀
    <b class='flag-5'>STM32L552</b><b class='flag-5'>開發板</b>——<b class='flag-5'>開發</b>環境

    STM32f10x 外部中斷中斷分組

    利用外部中斷來實現按鍵控制LED燈的亮滅。實驗工具:MDK5,STM32F103ZET6開發板使用固件庫編程LED燈引腳PD13,按鍵PE0首先了解一下32的
    發表于 11-23 18:06 ?4次下載
    <b class='flag-5'>STM32</b>f10x <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>及<b class='flag-5'>中斷</b>分組

    野火F1開發板STM32案例-外部中斷(按鍵)使用

    野火F1開發板STM32案例-外部中斷(按鍵)使用硬件平臺野火STM32F103ZET6 霸道V2開發板
    發表于 11-24 16:36 ?1次下載
    野火F1<b class='flag-5'>開發板</b><b class='flag-5'>STM32</b>案例-<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>(按鍵)使用

    CubeMX系列教程——4 外部中斷

    這篇文章將使用STM32CubeMX生成外部中斷初始代碼,并添加測試代碼。開發板使用的是原子STM32F407
    發表于 12-05 13:36 ?11次下載
    CubeMX系列教程——4 <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    如何對GD32F310開發板外部中斷進行測試呢

    通過例程來測試下開發板外部中斷。設置為上升沿觸發,LED指示燈,中斷一次,狀態反轉一次。
    的頭像 發表于 09-30 14:39 ?1481次閱讀
    如何對GD32F310<b class='flag-5'>開發板</b>的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>進行測試呢
    主站蜘蛛池模板: 色网站在线看 | 欧洲精品码一区二区三区免费看 | 四虎影院在线观看免费 | 成人青草亚洲国产 | 精品国产乱码一区二区三区 | 91福利网winktv | 他也色在线视频 | 黄视频网站观看 | 国产特黄一级一片免费 | 天天爱天天做天天爽夜夜揉 | 日本亚洲成人 | 激情综合激情 | 日本人xxxxxxxxxⅹ69 | 亚洲一区二区三区不卡视频 | 国产精品一久久香蕉产线看 | 色老头成人免费视频天天综合 | 特级黄色免费片 | 色多多视频在线观看 | 欧美性f | 成 人 免 费 黄 色 | 欧美一级免费观看 | 国产国产成人人免费影院 | 视频一本大道香蕉久在线播放 | 日韩精品一区二区三区免费视频 | 国模在线| 狠狠躁夜夜躁人人爽天天miya | 亚洲 欧洲 日产 韩国在线 | 91高清在线成人免费观看 | 久久精品国产免费高清 | 日本xxx69hd | 激情综合网五月婷婷 | 欧美八区| 欧美成人高清性色生活 | 色香欲综合成人免费视频 | 亚洲一区二区三区在线 | 欧美一级在线观看 | 6080伦理久久精品亚洲 | 很黄很暴力 很污秽的小说 很黄很黄叫声床戏免费视频 | 婷婷色影院 | 成人啪啪免费视频 | 香蕉视频黄色片 |