99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

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

用STM32CubeIDE軟件實(shí)現(xiàn)STM32外部中斷實(shí)例

8Y52_c_stm32 ? 來源:ARM與嵌入式 ? 作者:保生 ? 2022-08-24 09:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文用STM32CubeIDE軟件實(shí)現(xiàn)STM32外部中斷實(shí)例。

新建工程

“File”-“New”-“STM32 Project”。

7b81411a-22d2-11ed-ba43-dac502259ad0.png

輸入芯片型號(hào)STM32F103ZE。

7b901488-22d2-11ed-ba43-dac502259ad0.png

選擇相應(yīng)封裝,下一步。

7ba59dd0-22d2-11ed-ba43-dac502259ad0.png

填寫項(xiàng)目名,選擇工程位置,下一步。

7bbd5a4c-22d2-11ed-ba43-dac502259ad0.png

配置時(shí)鐘、調(diào)試模式

選擇高速外部時(shí)鐘。

7be491a2-22d2-11ed-ba43-dac502259ad0.png

HCLK總線時(shí)鐘處輸入72,回車,配置使用最高時(shí)鐘頻率。

7bf80282-22d2-11ed-ba43-dac502259ad0.png

調(diào)試模式選擇串行,方便下載程序。

7c18918c-22d2-11ed-ba43-dac502259ad0.png

配置管腳外設(shè)

本實(shí)例中用到了LED1與KEY_LEFT,找到相應(yīng)電路圖。

7c2a1600-22d2-11ed-ba43-dac502259ad0.png

7c4a2e54-22d2-11ed-ba43-dac502259ad0.png

7c5b86c2-22d2-11ed-ba43-dac502259ad0.png

可見LED1對(duì)應(yīng)PC0管腳,低電平點(diǎn)亮。按鍵K1對(duì)應(yīng)PE2管腳,低電平有效。

PC0配置為GPIO_Output,GPIO輸出模式

7c850d80-22d2-11ed-ba43-dac502259ad0.png

PE2配置為GPIO_EXTI2,GPIO中斷線2。

7c97c81c-22d2-11ed-ba43-dac502259ad0.png

對(duì)GPIO進(jìn)行配置,可以看到PC0、PE2兩個(gè)管腳。

PC0管腳的配置:

GPIO輸出電平,“High”,復(fù)位后高電平,LED1熄滅狀態(tài)。

GPIO模式,“OutputPushPull”,推挽輸出,相關(guān)文章:梳理清楚推挽、開漏、OC、OD。

GPIO上拉下拉,“Pull-up”,上拉,默認(rèn)高電平,避免管腳電平狀態(tài)不穩(wěn)定

7ca8f7ae-22d2-11ed-ba43-dac502259ad0.png

PE2管腳的配置,GPIO模式這里有6個(gè)選項(xiàng),分別是:

上升沿觸發(fā)的外部中斷

下降沿觸發(fā)的外部中斷

上升/下降沿觸發(fā)的外部中斷

上升沿觸發(fā)的事件中斷

下降沿觸發(fā)的事件中斷

上升/下降沿觸發(fā)的事件中斷

“外部中斷”與“事件中斷”的區(qū)別:

“事件中斷”可以由硬件自動(dòng)完成這個(gè)事件產(chǎn)生的結(jié)果,比如引起DMA操作、AD轉(zhuǎn)換等,響應(yīng)速度更快。

而本例中需要中斷服務(wù)函數(shù)才能完成中斷后產(chǎn)生的結(jié)果,是“外部中斷”

由電路圖可知,KEY1按鍵按下時(shí)為低電平,過程中會(huì)產(chǎn)生一個(gè)下降沿,所以選擇“下降沿外部中斷”這一項(xiàng)。

按鍵低電平有效,選擇上拉,給管腳一個(gè)穩(wěn)定的電平狀態(tài),不按下時(shí)為默認(rèn)的高電平。

7cc38042-22d2-11ed-ba43-dac502259ad0.png

配置NVIC嵌套向量中斷控制器

NVIC就是用來控制中斷響應(yīng)的,如下圖列出了各個(gè)中斷??梢苑謩e配置其使能狀態(tài)、搶占優(yōu)先級(jí)與響應(yīng)優(yōu)先級(jí)。

7ce2dbe0-22d2-11ed-ba43-dac502259ad0.png

因?yàn)镻E2配置為GPIO_EXTI2中斷,它出現(xiàn)在了列表中。同時(shí)出現(xiàn)的還有SysTick,它是HAL_Delay的時(shí)基來源,如下圖note處所說的,每隔一個(gè)固定時(shí)間產(chǎn)生一次中斷。

因?yàn)橄挛闹袛喾?wù)函數(shù)代碼中用到了HAL_Delay延時(shí)函數(shù),把SysTick與EXTI2的搶占優(yōu)先級(jí)分別設(shè)置為0與2。在這里,數(shù)值越大優(yōu)先級(jí)越小。

7cf4ea24-22d2-11ed-ba43-dac502259ad0.png

配置中斷服務(wù)函數(shù)

進(jìn)行上述配置之后,點(diǎn)擊生成代碼。

7d186a76-22d2-11ed-ba43-dac502259ad0.png

本實(shí)例中的中斷類型是“外部中斷”,通過中斷服務(wù)函數(shù)來實(shí)現(xiàn)。

打開stm32f1xx_it.c文件,找到中斷服務(wù)函數(shù),它調(diào)用了GPIO中斷服務(wù)函數(shù)。

7d2c3952-22d2-11ed-ba43-dac502259ad0.png

F3找到這個(gè)函數(shù)的定義,在清除中斷標(biāo)志位后,進(jìn)入了Callback回調(diào)函數(shù)。

7d40ee60-22d2-11ed-ba43-dac502259ad0.png

這個(gè)Callback函數(shù)也是一個(gè)弱化函數(shù),,可以重寫,如下圖的__weak標(biāo)識(shí)。

7d4f0a04-22d2-11ed-ba43-dac502259ad0.png

回到stm32f1xx_it.c文件,在末尾user code處寫上中斷發(fā)生時(shí)要實(shí)現(xiàn)的結(jié)果。

7d648000-22d2-11ed-ba43-dac502259ad0.png

審核編輯:湯梓紅

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

    關(guān)注

    114

    文章

    17116

    瀏覽量

    184445
  • STM32
    +關(guān)注

    關(guān)注

    2295

    文章

    11032

    瀏覽量

    365228
  • 中斷
    +關(guān)注

    關(guān)注

    5

    文章

    905

    瀏覽量

    42827
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54142

原文標(biāo)題:STM32外部中斷實(shí)例

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32CubeIDE SWV功能介紹

    開發(fā)環(huán)境,將Printf定位到串口上是正常的,但是在重定位到SWO上卻出現(xiàn)了無法打印的問題??蛻粢矃⒖剂司W(wǎng)上的教程,仍然無法實(shí)現(xiàn),不知道是什么原因。 STM32CubeIDE 版本:V1.6.1 硬件
    的頭像 發(fā)表于 10-13 14:20 ?4263次閱讀
    <b class='flag-5'>STM32CubeIDE</b> SWV功能介紹

    Ubuntu 18.04 安裝 STM32CubeIDE 小記

    Ubuntu 18.04 安裝 STM32CubeIDE 小記
    發(fā)表于 11-18 17:36 ?9次下載
    Ubuntu 18.04 安裝 <b class='flag-5'>STM32CubeIDE</b> 小記

    如何用STM32CubeIDE軟件實(shí)現(xiàn)STM32外部中斷

    本文STM32CubeIDE軟件實(shí)現(xiàn)STM32外部中斷
    的頭像 發(fā)表于 11-22 10:15 ?5875次閱讀
    如何用<b class='flag-5'>STM32CubeIDE</b><b class='flag-5'>軟件</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>STM32</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內(nèi)存QSPI FLASH執(zhí)行用戶代碼

    STM32CubeIDE XiP 和 BootROM介紹, XiP外部內(nèi)存QSPI FLASH執(zhí)行用戶代碼
    發(fā)表于 12-02 09:21 ?14次下載
    <b class='flag-5'>STM32CubeIDE</b> XiP 和 BootROM介紹, XiP<b class='flag-5'>外部</b>內(nèi)存QSPI FLASH執(zhí)行用戶代碼

    STM32CubeIDE使用

    參考STM32CubeIDE屬于一站式工具,本文帶你體驗(yàn)它的強(qiáng)大第一個(gè)STM32CubeIDE項(xiàng)目STM32CubeIDE使用記錄STM32CubeIDE使用筆記(03):使用ST-L
    發(fā)表于 12-02 17:21 ?29次下載
    <b class='flag-5'>STM32CubeIDE</b>使用

    STM32CubeIDE初識(shí)

    STM32CubeIDE初識(shí)
    發(fā)表于 12-02 18:36 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>初識(shí)

    STM32CubeIDE安裝-NSIS Error問題

    STM32CubeIDE安裝-NSIS Error問題
    發(fā)表于 12-03 21:06 ?18次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝-NSIS Error問題

    STM32CubeIDE的MCU開發(fā)

    以前做stm32嵌入式開發(fā)均使用的是破解版的keil軟件,現(xiàn)在工作需要無法按照此步驟進(jìn)行,最近針對(duì)ST官方免費(fèi)軟件STM32CubeIDE進(jìn)行了相關(guān)調(diào)研工作。1
    發(fā)表于 12-05 12:21 ?25次下載
    <b class='flag-5'>STM32CubeIDE</b>的MCU開發(fā)

    第一個(gè)STM32CubeIDE項(xiàng)目

    使用STM32CubeIDE的第一個(gè)項(xiàng)目開始第一個(gè)項(xiàng)目添加代碼今天開始做一個(gè)STM32CubeIDE的第一個(gè)項(xiàng)目,首先需要說明的:STM32CubeIDE是一個(gè)免費(fèi)的軟件開始第一個(gè)項(xiàng)目
    發(fā)表于 12-29 19:29 ?11次下載
    第一個(gè)<b class='flag-5'>STM32CubeIDE</b>項(xiàng)目

    STM32CubeIDE生成的工程

    近日接到一客戶需求,其欲在 STM32CubeIDE 中指定堆(Heap)的地址到某一專用的RAM 中。
    的頭像 發(fā)表于 07-27 09:40 ?2161次閱讀

    STM32CUBEIDE(1)----安裝

    概述 STM32CubeIDE是一體式多操作系統(tǒng)開發(fā)工具,是STM32Cube軟件生態(tài)系統(tǒng)的一部分。 STM32CubeIDE是一種高級(jí)C/C++開發(fā)平臺(tái),具有
    的頭像 發(fā)表于 11-22 09:52 ?1757次閱讀
    <b class='flag-5'>STM32CUBEIDE</b>(1)----安裝

    STM32CubeIDE安裝指南

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE安裝指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-01 15:44 ?6次下載
    <b class='flag-5'>STM32CubeIDE</b>安裝指南

    巧用 STM32CubeIDE 之編譯警告

    巧用 STM32CubeIDE 之編譯警告
    的頭像 發(fā)表于 10-25 16:33 ?1493次閱讀
    巧用 <b class='flag-5'>STM32CubeIDE</b> 之編譯警告

    STM32CubeIDE快速入門指南

    電子發(fā)燒友網(wǎng)站提供《STM32CubeIDE快速入門指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 14:29 ?23次下載
    <b class='flag-5'>STM32CubeIDE</b>快速入門指南

    STM32CubeIDE找不到elf

    STM32CubeIDE是STMicroelectronics公司推出的一款集成開發(fā)環(huán)境(IDE),用于開發(fā)STM32系列微控制器的應(yīng)用程序。它基于Eclipse開發(fā)平臺(tái),并集成了ST的驅(qū)動(dòng)程序
    的頭像 發(fā)表于 01-02 16:32 ?2840次閱讀