吴忠躺衫网络科技有限公司

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

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

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

STM32的中斷及是如何使用

汽車電子技術(shù) ? 來源:華維單片機編程 ? 作者: 華維 ? 2023-02-09 17:32 ? 次閱讀

中斷是一種機制,通過這種機制,I/O或指令可以暫停處理器的正常執(zhí)行,并像具有最高優(yōu)先級一樣先執(zhí)行自己的任務(wù)。也就是說,當(dāng)外部中斷發(fā)生時(比如來自某個傳感器),處理器暫停其正在執(zhí)行,首先提供中斷服務(wù),然后繼續(xù)其正常執(zhí)行。

為了了解 STM32F103C8 中的中斷,我們將使用按鈕作為外部中斷。在這里,我們讓一個變量從 0 開始每秒增1,并將其顯示在16x2 LCD上,每當(dāng)按下按鈕時,LED 亮起,LCD 顯示屏?xí)@示 INTERRUPT。

中斷類型和 ISR(中斷服務(wù)程序)

中斷大致可以分為兩類:

1.硬件中斷: 如果到處理器的信號來自某些外部設(shè)備,例如按鈕或傳感器,或者來自其他信號并告訴處理器執(zhí)行 ISR 中存在的特定任務(wù)的硬件設(shè)備,則稱為硬件中斷。

2.軟件中斷: 由軟件指令產(chǎn)生的中斷。

ISR 中斷服務(wù)程序:

中斷服務(wù)程序或中斷處理程序是其中包含少量指令的事件,當(dāng)發(fā)生中斷時,處理器首先執(zhí)行 ISR 中的這些代碼,然后再繼續(xù)執(zhí)行中斷之前正在執(zhí)行的任務(wù)。

STM32中的中斷語法

Arduino IDE中,啟用ISR具有以下語法attachInterrupt (digitalPinToInterrupt(pin), ISR, mode),同樣可以在 STM32 中使用,因為本文正是使用 arduino IDE 上傳代碼。

digitalPinToInterrupt(pin)

在STM32F103C8中,任何GPIO引腳都可以用于中斷。我們只需要指定用于中斷的輸入引腳。但是,當(dāng)同時使用多個中斷時,我們可能需要遵循一些限制。

ISR 中斷子程序

它是一個在發(fā)生外部中斷時調(diào)用的中斷處理函數(shù)。它沒有參數(shù)和返回值。

mode:觸發(fā)中斷的方式條件

上升沿觸發(fā):當(dāng)引腳從 低電平變?yōu)?高電平時觸發(fā)中斷。

下降沿觸發(fā):當(dāng)引腳從 高電平變?yōu)?低電平時觸發(fā)中斷。

雙邊沿觸發(fā):當(dāng)引腳從 低電平變?yōu)?高電平或 高電平變?yōu)?低電平時觸發(fā)中斷(即,當(dāng)引腳電平發(fā)生變化時)。

使用中斷注意事項

中斷服務(wù)程序功能 (ISR) 必須盡可能短。

避免在ISR中使用delay函數(shù)。

電路圖和連接說明

圖片

按鈕引腳的一側(cè)連接到 STM32 的 3.3V,另一側(cè)通過下拉電阻連接到 STM32 的輸入引腳(PA0)。

關(guān)于使用下拉電阻器,當(dāng)按下或釋放按鈕時,微控制器只會在其輸入端獲得高電平或低電平。如果沒有下拉電阻,按鈕沒有按下,輸入端狀態(tài)不確定(不是高也不是低),并且容易受外界影響,輸入端電平可能是浮動隨機值(忽高忽低)。

圖片

STM32F103C8與LCD的連接

下表顯示了 LCD (1602) 和 STM32F103C8 微控制器之間的引腳連接。

圖片

STM32F103C8中斷編程

程序很簡單,使用Arduino IDE編程。

我們將一個變量從 0 開始每秒自增1并將其顯示在 1602 LCD 上,每當(dāng)按下按鈕時,LED亮起,LCD 顯示屏?xí)@示“Interrupt”,松開按鈕LED熄滅。

圖片

//聲明LCD 引腳連接到STM32 的哪個引腳
const int rs= PB10,en= PB11,d4= PB0,d5= PB1,d6= PC13,d7= PC14;
#include//LCD 庫
LiquidCrystal lcd (rs,en,d4,d5,d6,d7);//初始化LCD
volatile boolean ledOn = false; //LED狀態(tài)標識


void setup()
{
  lcd.begin(16,2);// 將 LCD 設(shè)置為 16x2 類型
  lcd.print("Hello World"); //LCD 顯示 Hello World!
  delay(2000); //延時2秒
  lcd.clear(); //清屏
  pinMode(PA1,OUTPUT); //將引腳 PA1 設(shè)置為輸出
  pinMode(PA0,INPUT); //將引腳 PA0 設(shè)置為輸入
  int i = 0;
  attachInterrupt(PA0,buttonPressed,CHANGE);// 創(chuàng)建外部中斷
}


void loop()
{
  lcd.clear();//清屏
  lcd.print("NUMBER:"); //LCD顯示NUMBER:
  lcd.print(i);//LCD 顯示“i”值
  ++i; //“i” 自增 1
  delay(1000); //延時1秒
}


void buttonPressed() //ISR中斷子函數(shù)
{
  //松開按鈕
  if(ledOn) //當(dāng)發(fā)生中斷時判斷LED 狀態(tài)標識,如果LED是亮起狀態(tài)
  {
    ledOn=false; //則設(shè)置LED狀態(tài)標識為熄滅
    digitalWrite(PA1,LOW); //同時把PA1設(shè)置為低電平,熄滅LED
  }
  
  //按下按鈕
  else // 否則(即如果LED狀態(tài)標識為熄滅)
  {
    ledOn = true; //則設(shè)置LED狀態(tài)標識為亮起
    digitalWrite(PA1,HIGH); //同時把PA1設(shè)置為高電平,點亮LED
    lcd.setCursor(0,1); //將光標設(shè)置在第一列和第二行
    lcd.print("Interrupt"); //LCD顯示Interrupt
  }
}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19409

    瀏覽量

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

    關(guān)注

    5

    文章

    900

    瀏覽量

    41753
  • i/o
    i/o
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    4613
收藏 人收藏

    評論

    相關(guān)推薦

    STM32中斷系統(tǒng)詳解 - 第2節(jié) #硬聲創(chuàng)作季

    STM32中斷系統(tǒng)
    充八萬
    發(fā)布于 :2023年09月01日 16:21:24

    STM32中斷系統(tǒng)詳解 - 第4節(jié) #硬聲創(chuàng)作季

    STM32中斷系統(tǒng)
    充八萬
    發(fā)布于 :2023年09月01日 16:23:05

    STM32中斷系統(tǒng)詳解 - 第6節(jié) #硬聲創(chuàng)作季

    STM32中斷系統(tǒng)
    充八萬
    發(fā)布于 :2023年09月01日 16:24:45

    STM32中斷系統(tǒng)詳解 - 第9節(jié) #硬聲創(chuàng)作季

    STM32中斷系統(tǒng)
    充八萬
    發(fā)布于 :2023年09月01日 16:27:16

    STM32中斷優(yōu)先級和開關(guān)總中斷教程

    STM32中斷優(yōu)先級和開關(guān)總中斷 教程
    發(fā)表于 11-23 18:03 ?0次下載

    STM32中斷與嵌套快速入門(NVIC)

    STM32中斷與嵌套快速入門(NVIC),喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-15 17:45 ?41次下載

    STM32中斷與嵌套NVIC快速入門

    STM32 中斷與嵌套NVIC 快速入門,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 01-15 17:45 ?20次下載

    STM32中斷管理函數(shù)

    STM32中斷管理函數(shù),感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-02 19:13 ?15次下載

    中斷是什么?STM32中斷系統(tǒng)介紹和中斷配置步驟資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是中斷是什么?STM32中斷系統(tǒng)介紹和中斷配置步驟資料免費下載。
    發(fā)表于 10-11 08:00 ?5次下載
    <b class='flag-5'>中斷</b>是什么?<b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>系統(tǒng)介紹和<b class='flag-5'>中斷</b>配置步驟資料免費下載

    STM32中斷及FreeRTOS中斷優(yōu)先級配置

    STM32中斷,及FreeRTOS中斷優(yōu)先級配置
    的頭像 發(fā)表于 03-04 11:45 ?9001次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>及FreeRTOS<b class='flag-5'>中斷</b>優(yōu)先級配置

    STM32中斷與事件的區(qū)別資料下載

    電子發(fā)燒友網(wǎng)為你提供STM32中斷與事件的區(qū)別資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計、用戶指南、解決方案等資料,希望可以幫助到廣大的電子工程師們。
    發(fā)表于 04-23 08:54 ?2次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>與事件的區(qū)別資料下載

    STM32關(guān)全局中斷的方法 STM32中斷類型

    STM32中斷很強大,STM32中斷可以嵌套,任何外設(shè)都可以產(chǎn)生中斷,其中中斷和異常是等價的。
    的頭像 發(fā)表于 07-22 10:52 ?2.9w次閱讀

    STM32中斷系統(tǒng)的工作流程

    一、前言 在之前的STM32中斷系統(tǒng)理論基礎(chǔ)知識之基本原理及NVIC中,分別中斷的基本原理,中斷的管理機制和中斷的處理流程進行了較為詳細的
    的頭像 發(fā)表于 06-22 09:17 ?2720次閱讀
    <b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>系統(tǒng)的工作流程

    為什么有些STM32中斷沒有子優(yōu)先級?

    看到一個交流群在討論關(guān)于【關(guān)于STM32中斷優(yōu)先級的話題】,其中就有小伙伴提到:為什么有些STM32中斷沒有【子優(yōu)先級】?
    的頭像 發(fā)表于 10-17 15:50 ?953次閱讀
    為什么有些<b class='flag-5'>STM32</b><b class='flag-5'>中斷</b>沒有子優(yōu)先級?

    stm32中斷怎么處理的

    STM32是一款非常強大的微控制器系列,具有豐富的外設(shè)和功能。中斷STM32中非常重要的部分,能夠幫助我們提高系統(tǒng)的響應(yīng)速度和效率。本文將詳細介紹STM32
    的頭像 發(fā)表于 01-02 17:35 ?2717次閱讀
    百家乐娱乐城主页| 开心8娱乐城| 百家乐官网平注7s88| 大发888在线娱乐游戏| 赌王百家乐官网的玩法技巧和规则| 亲朋棋牌捕鱼辅助| 百家乐庄闲多少| 网络百家乐官网娱乐| 正品百家乐的玩法技巧和规则 | 博彩乐百家乐官网平台| 百家乐赌场赌场网站| 百家乐官网哪条下路好| 大发888 casino exe| 沙龙百家乐官网娱乐| 乌鲁木齐县| 百家乐心得打法| 百家乐官网牌具公司| 全球最大赌博网站| 找真人百家乐的玩法技巧和规则| 百家乐官网赌坊| 百家乐群11889| 百家乐官网生活馆| 威尼斯人娱乐公司| 百家乐哪条路好| 百家乐官网扑克发牌器| 大发888游戏大厅下载| 百家乐娱乐天上人间| 赌博中百家乐官网什么意思 | 大家旺百家乐官网的玩法技巧和规则| 浪卡子县| 大发888网页免费游戏| 百家乐天天乐娱乐场| 赌神网百家乐官网的玩法技巧和规则| 长宁区| 百家乐拍照看| 利高百家乐娱乐城| 网络百家乐官网的破解| 威尼斯人娱乐电子游戏| 澳门百家乐牌规| 木星百家乐官网的玩法技巧和规则 | 博马百家乐娱乐城|