一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32L552開(kāi)發(fā)板——外部中斷

STM32單片機(jī) ? 來(lái)源:STM32單片機(jī) ? 2020-05-29 17:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

評(píng)測(cè)內(nèi)容

使用外部中斷獲取按鍵的狀態(tài),并調(diào)節(jié)LED燈閃爍的頻率。

所需元件

1、STM32L552ZET6Q;

2、板載紅色LED(LD3);

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

評(píng)測(cè)步驟 01

將按鍵引腳配置成外部中斷模式,打開(kāi)上回創(chuàng)建的STM32CubeMX工程,將芯片的PC13引腳按照步驟配置成下圖所示的設(shè)置,第五步為設(shè)置程序中的引腳別名,可根據(jù)自己的需求進(jìn)行設(shè)置

02

使能外部中斷并設(shè)置中斷優(yōu)先級(jí),按照下圖所示步驟及內(nèi)容設(shè)置,中斷優(yōu)先級(jí)可自己根據(jù)需要設(shè)置

03

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

04

打開(kāi)代碼工程,發(fā)現(xiàn)main.c文件中的GPIO口配置函數(shù)多了如下兩行設(shè)置中山優(yōu)先級(jí)和使能中斷的代碼

05

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

06

跳轉(zhuǎn)到HAL_GPIO_EXTI_IRQHandler函數(shù)的實(shí)現(xiàn),該函數(shù)的內(nèi)容如下

其中的HAL_GPIO_EXTI_Rising_Callback和HAL_GPIO_EXTI_Falling_Callback函數(shù)就是外部中斷的回調(diào)函數(shù),兩個(gè)函數(shù)內(nèi)分別有如下注釋:

意思是這兩個(gè)函數(shù)在用戶需要的時(shí)候可以在用戶文件上實(shí)現(xiàn),實(shí)現(xiàn)的內(nèi)容就是用戶需要本次中斷執(zhí)行的內(nèi)容。

07

回到main.c文件,添加如下函數(shù)的實(shí)現(xiàn)

USER_BUTTON為一個(gè)全局變量,在文件開(kāi)頭進(jìn)行定義:_Bool USER_BUTTON = 0;

08

在主函數(shù)的循環(huán)中添加如下代碼;

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

下載到開(kāi)發(fā)板上,按下按鍵觀察程序運(yùn)行情況,還是跟上回的一樣,實(shí)現(xiàn)了使用外部中斷檢測(cè)按鍵對(duì)LED的閃爍頻率進(jìn)行調(diào)節(jié)。

總結(jié)

得益于STM32CubeMX的強(qiáng)大功能以及HAL庫(kù)的完美包裝,外部中斷的實(shí)現(xiàn)似乎并沒(méi)有那么難(相比于標(biāo)準(zhǔn)固件庫(kù)來(lái)說(shuō)真的是簡(jiǎn)單了不少),只需要自己實(shí)現(xiàn)一個(gè)回調(diào)函數(shù)就好了,對(duì)快速開(kāi)發(fā)是方便了不少。好了,本次評(píng)測(cè)就到此結(jié)束,感謝您的閱讀。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23847

    瀏覽量

    674143
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5682

    瀏覽量

    104768
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    133

    瀏覽量

    16207

原文標(biāo)題:分享 | 人生中的首塊STM32L552開(kāi)發(fā)板——外部中斷

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32L552在實(shí)際應(yīng)用中的功耗高于預(yù)期的原因是什么?如何解決?

    STM32L552在實(shí)際應(yīng)用中的功耗高于預(yù)期。
    發(fā)表于 03-20 06:19

    為什么無(wú)法通過(guò)調(diào)試器連接到STM32L552?

    無(wú)法通過(guò)調(diào)試器連接到STM32L552,或者編程失敗
    發(fā)表于 03-20 06:14

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

    STM32L552無(wú)法從低功耗模式中正確喚醒
    發(fā)表于 03-20 08:07

    【NUCLEO-L552ZE-Q開(kāi)發(fā)板試用連載】NUCLEO-L552ZE-Q開(kāi)發(fā)板試用

    處理器產(chǎn)品的開(kāi)發(fā)使用。評(píng)測(cè)計(jì)劃:1、根據(jù)ST官方給出的datasheet,熟悉NUCLEO_L552ZE_Q_STM32Nucleo_144 開(kāi)發(fā)板的硬件資源,STM32L552微控制
    發(fā)表于 03-11 15:35

    【NUCLEO-L552ZE-Q開(kāi)發(fā)板試用連載】+硬件介紹與初步上手

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

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

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

    STM32L552如何交換閃存組?

    STM32L552 的 SWAP_BANK 有點(diǎn)在 eeprom 中,但我們想在自己的引導(dǎo)加載程序中動(dòng)態(tài)交換閃存組,并且不想使 eeprom 的生命周期過(guò)期,在沒(méi)有 eeprom 設(shè)置的情況下交換內(nèi)存的任何選項(xiàng)?
    發(fā)表于 12-01 06:33

    有沒(méi)有人讓USB在STM32L552上作為VCP運(yùn)行?

    有沒(méi)有人讓 USB 在 STM32L552 上作為 VCP 運(yùn)行?我們?cè)谕ㄟ^(guò) VCP 將 USB 連接到 PC 的情況下運(yùn)行系統(tǒng)時(shí)遇到問(wèn)題。我們使用 MXCube 5.6.1 版并使用 USB
    發(fā)表于 12-28 06:24

    關(guān)于STM32L552的功耗問(wèn)題

    我們選用STM32L552 ,因?yàn)榭粗笜?biāo),這款芯片的功耗很低,看指標(biāo) 106 μA/MHz Run mode但是我們實(shí)測(cè)下來(lái),2MHz的時(shí)候 電流為0.89mA16MHz的時(shí)候電流為2.8mA。差異
    發(fā)表于 08-07 09:14

    首次使用STM32L552開(kāi)發(fā)板的一些步驟以及電腦系統(tǒng)和開(kāi)發(fā)軟件

    帶著一顆追求新產(chǎn)品新功能的心以及試一試的態(tài)度,按要求在帖子里回復(fù)了自己的想法,沒(méi)想到結(jié)果被選中了,不得不說(shuō),這是我人生中的首次評(píng)測(cè),內(nèi)心無(wú)比的激動(dòng),也無(wú)比的忐忑,激動(dòng)是因?yàn)槲液軜s幸地申請(qǐng)到了這次NUCLEO-L552ZE-Q開(kāi)發(fā)板的評(píng)測(cè)資格
    的頭像 發(fā)表于 04-28 10:10 ?8020次閱讀

    STM32L552開(kāi)發(fā)板——開(kāi)發(fā)環(huán)境

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

    STM32f10x 外部中斷中斷分組

    利用外部中斷來(lái)實(shí)現(xiàn)按鍵控制LED燈的亮滅。實(shí)驗(yàn)工具:MDK5,STM32F103ZET6開(kāi)發(fā)板使用固件庫(kù)編程LED燈引腳PD13,按鍵PE0首先了解一下32的
    發(fā)表于 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開(kāi)發(fā)板STM32案例-外部中斷(按鍵)使用

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

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

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

    如何對(duì)GD32F310開(kāi)發(fā)板外部中斷進(jìn)行測(cè)試呢

    通過(guò)例程來(lái)測(cè)試下開(kāi)發(fā)板外部中斷。設(shè)置為上升沿觸發(fā),LED指示燈,中斷一次,狀態(tài)反轉(zhuǎn)一次。
    的頭像 發(fā)表于 09-30 14:39 ?1589次閱讀
    如何對(duì)GD32F310<b class='flag-5'>開(kāi)發(fā)板</b>的<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>進(jìn)行測(cè)試呢