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

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

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

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

STM32F103C8T6中斷特征介紹 用按鈕為STM32 MCU觸發(fā)一個中斷

芯情觀察猿 ? 來源:芯情觀察猿 ? 作者:芯情觀察猿 ? 2022-05-17 08:57 ? 次閱讀

中斷是MCU的特征之一,STM32F103C8T6也不例外。以下通過STM32F103C8T6 Blue Pill外接一個按鈕,向MCU觸發(fā)外部中斷。

STM32F103C8T6中斷特征

中斷有硬件中斷和軟件中斷兩種,當(dāng)一個中斷發(fā)生時,相應(yīng)的中斷服務(wù)程序(ISR)和中斷處理程序就開始運行了。其中,ISR的指令必須盡可能小,ISR中也不能出現(xiàn)delay ()之類的阻塞函數(shù)。

STM32 Blue Pill或者STM32F103C8T6 MCU指定NVIC來管理所有外部中斷和外設(shè)中斷,其應(yīng)用采用了Arduino IDE。因此,我們可使用相同的句法來配置外部中斷,這可通過以下稱作 “attachInterrupt ()” 的句法給出:
attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);

該句法的第一個參數(shù) digitalPinToInterrupt(pin) 代表預(yù)期外部中斷的MCU引腳,例如,如果按鈕連接于PA0,該參數(shù)就變成“digitalPinToInterrupt(PA0)”。

第二個參數(shù)是ISR函數(shù),該函數(shù)必須具有 void 返回類型,不能代任何參數(shù)。

第三個函數(shù)是是觸發(fā)中斷的模式,例如,信號突變到哪個點位時,必須觸發(fā)一個中斷。Arduino環(huán)境下,該參數(shù)通常為5個用戶預(yù)定義的常數(shù),但STM32須從如下3個選項中選取:
?CHANGE: 在引腳數(shù)值改變時觸發(fā)中斷。
?RISING: 當(dāng)引腳數(shù)值從LOW 上升到 HIGH 時觸發(fā)中斷。
?FALLING: 當(dāng)引腳數(shù)值從 HIGH 回落到 LOW 時觸發(fā)中斷。

用按鈕為STM32 MCU觸發(fā)一個中斷

本項目所需元件包括:STM32F103C8T6藍(lán)丸版、按鈕、USB-UART轉(zhuǎn)換器、USB電纜,杜邦線。

pYYBAGKC8qaAfY_AAACKIt_n0ls827.png

首先,將按鈕連接到 PA0 引腳,并通過一個4.7KΩ電阻器上拉到HIGH ,另一引腳接 GND。
以下代碼用以激勵 PA0 引腳的中斷,button_ISR用來切換LED
int ledPin = PC13;
int buttonPin = PA0;
int ledToggle;
int previousState = HIGH;
unsigned int previousPress = 0;
volatile int buttonFlag;
int buttonDebounce = 20;
void setup()
{
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
attachInterrupt(digitalPinToInterrupt(buttonPin), button_ISR, CHANGE);
}
void loop()
{
if((millis() – previousPress) > buttonDebounce && buttonFlag)
{
previousPress = millis();
if(digitalRead(buttonPin) == LOW && previousState == HIGH)
{
ledToggle =! ledToggle;
digitalWrite(ledPin, ledToggle);
previousState = LOW;
}
else if(digitalRead(buttonPin) == HIGH && previousState == LOW)
{
previousState = HIGH;
}
buttonFlag = 0;
}
}
void button_ISR()
{
buttonFlag = 1;
}
本項目演示了STM32F103C8T6 Blue Pill外部中斷的操作,每按一次按鈕就觸發(fā)一次中斷,STM32 MCU就執(zhí)行一次簡單ISR,返回來切換LED狀態(tài)。

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

    關(guān)注

    146

    文章

    17317

    瀏覽量

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

    關(guān)注

    5

    文章

    900

    瀏覽量

    41746
  • STM32F103C8T6
    +關(guān)注

    關(guān)注

    109

    文章

    162

    瀏覽量

    83981
收藏 人收藏

    評論

    相關(guān)推薦

    如何在STM32F103C8使用中斷

    在本項目中,為了理解STM32F103C8中斷,我們將使用按鈕作為外部中斷。在這里,我們將從 0 開始遞增
    的頭像 發(fā)表于 11-03 17:11 ?2587次閱讀
    如何在<b class='flag-5'>STM32F103C8</b><b class='flag-5'>中</b>使用<b class='flag-5'>中斷</b>

    Ardunio STM32F103C8T6中斷引腳

    Ardunio STM32F103C8T6中斷引腳來解碼SYN500R信號 STM32F103C8T6 for Ardunio IDESYN500R芯片4支腳不帶解碼超外差接收模塊關(guān)于STM
    發(fā)表于 08-17 06:49

    STM32F103C8T6引腳圖

    本文介紹STM32F103C8T6引腳圖、STM32F103C8T6開發(fā)板電路圖及各部分引腳功能圖介紹STM32F103C8T6資料下載。
    發(fā)表于 08-03 15:53 ?44w次閱讀
    <b class='flag-5'>STM32F103C8T6</b>引腳圖

    stm32f103c8t6封裝及最小系統(tǒng)原理圖

    STM32F103C8T6款集成電路,芯體尺寸32位,程序存儲器容量是64KB,需要電壓2V~3.6V,工作溫度-40C ~ 85
    發(fā)表于 11-23 15:50 ?35.2w次閱讀

    stm32f103c8t6原理圖及最小系統(tǒng)

    stm32f103c8t6原理圖
    發(fā)表于 06-10 08:00 ?786次下載

    STM32F103RCT6移植到STM32F103C8T6需要注意那些事項

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F103RCT6移植到STM32F103C8T6需要注意那些事項。
    發(fā)表于 11-15 08:00 ?40次下載
    <b class='flag-5'>STM32F103RCT6</b>移植到<b class='flag-5'>STM32F103C8T6</b>需要注意那些事項

    STM32F103C8T6核心板的資料合集免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STM32F103C8T6核心板的資料合集免費下載包括了:STM32F103C8T6核心板測試程序(PC13閃爍),STM32F103C8T6核心板測試程序
    發(fā)表于 06-04 08:00 ?727次下載
    <b class='flag-5'>STM32F103C8T6</b>核心板的資料合集免費下載

    STM32F103C8T6原理圖

    STM32F103C8T6原理圖免費下載。
    發(fā)表于 06-02 10:01 ?186次下載

    利用STM32F103C8T6最小系統(tǒng)板點亮流水燈

    ;STM8產(chǎn)品型號命名規(guī)則(參考:STM32單片機最小系統(tǒng)詳解)可知: STM32F103C8T6這個命名STM32代表
    發(fā)表于 11-17 17:06 ?59次下載
    利用<b class='flag-5'>STM32F103C8T6</b>最小系統(tǒng)板點亮流水燈

    利用STM32F103C8T6最小系統(tǒng)板點亮流水燈

    ;STM8產(chǎn)品型號命名規(guī)則(參考:STM32單片機最小系統(tǒng)詳解)可知: STM32F103C8T6這個命名STM32代表
    發(fā)表于 11-17 18:06 ?97次下載
    利用<b class='flag-5'>STM32F103C8T6</b>最小系統(tǒng)板點亮流水燈

    stm32f103中斷總結(jié)很詳細(xì)

    stm32f103中斷總結(jié)很詳細(xì)
    發(fā)表于 11-24 17:06 ?28次下載
    <b class='flag-5'>stm32f103</b><b class='flag-5'>中斷</b>總結(jié)很詳細(xì)

    STM32F103C8t6程序下載

    STM32F103C8t6程序下載
    發(fā)表于 11-24 18:21 ?233次下載
    <b class='flag-5'>STM32F103C8t6</b>程序下載

    使用stm32f103c8t6設(shè)計的藍(lán)牙小車

    使用stm32f103c8t6設(shè)計的藍(lán)牙小車,具有前進后退,左轉(zhuǎn)右轉(zhuǎn)等功能
    發(fā)表于 08-07 16:08 ?33次下載

    ch32f103c8t6stm32f103c8t6的區(qū)別

    以及嵌入式系統(tǒng)等領(lǐng)域。ch32f103c8t6STM32F103C8T6這兩型號都是STM32F1系列的微處理器,在外形上基本
    的頭像 發(fā)表于 08-22 16:05 ?1w次閱讀

    分享STM32F103C8T6原理圖

    STM32F103C8T6最小系統(tǒng)原理圖
    發(fā)表于 08-29 15:52 ?109次下載
    太子百家乐官网娱乐城| 大发888娱乐城网页版lm0| 百家乐官网游戏解密| 金沙城百家乐大赛规则| 真龙娱乐城| 什么百家乐平注法| 皇冠在线娱乐| 百家乐网上投注网站| 临湘市| 百家乐博彩策略| 百家乐官网资金注码| 网上的百家乐怎么才能赚钱| 百家乐官网傻瓜式投注法| 百家乐透明发牌靴| 百家乐官网赌法| 百家乐麻将牌| 百家乐官网街机| 大发888娱乐场 b8| 属蛇和属猪做生意| 罗平县| 百家乐真人游戏赌场娱乐网规则| 大家旺百家乐官网娱乐城| 网上赌百家乐有假| 百家乐官网澳门技巧| 大西洋城娱乐| 太阳城百家乐杀猪吗| 太阳百家乐官网3d博彩通| 百家乐园首选去澳| 百家乐官网博彩的玩法技巧和规则| 娱乐城免费领取体验金| 百家乐平台有什么优势| 哪个百家乐官网平台信誉好| 大发888娱乐城电脑版下载| 做生意风水方向怎么看| 百家乐官网全讯网2| 老虎机单机游戏下载| 百家乐官网赌台| 百家乐官网试玩活动| 威尼斯人娱乐城不打烊| 做生意店内格局| 百家乐官网游戏排行榜|