RM新时代网站-首页

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

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

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

STM8S_009_ EXTI外部中斷

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-14 14:56 ? 次閱讀

有人問

我使用EXIT喚醒芯片,沒什么沒有觸發(fā)中斷,芯片卻喚醒了?

Ⅰ寫在前面

使用STM8S開發(fā)過上面類似功能的朋友應(yīng)該會(huì)知道,STM8S的穩(wěn)定性不如STM32,特別是在低功耗時(shí),使用EXTI外部中斷喚醒,很容易受到干擾信號(hào)而喚醒。因此,這種情況需在硬件電路上多加考慮抗干擾的電路。

其次,就是注意軟件的上下拉配置,如果外部加了上拉或下拉電阻,不建議再配置成上拉或下拉;如果沒有,建議加上。要使其軟件穩(wěn)定,還得深入EXTI的功能。

ⅡEXTI基礎(chǔ)知識(shí)

STM8S的EXTI外部中斷歸屬于GPIO一類,只需要將其IO配置成外部中斷、使能全局中斷、在中斷入口函數(shù)添加相關(guān)的代碼即可。

開啟中斷功能

用戶可以在I/O引腳為輸入模式時(shí)通過設(shè)置Px_CR2寄存器的相應(yīng)位來配置某個(gè)I/O作為外部輸入中斷模式。在該配置下, I/O引腳上的一個(gè)信號(hào)沿或是低電平會(huì)產(chǎn)生一個(gè)中斷請(qǐng)求。

在EXTI_CR[2:1]寄存器中對(duì)于每一個(gè)中斷向量都可以獨(dú)立編程為上升沿或下降沿觸發(fā)。

外部中斷只有在對(duì)應(yīng)I/O口被設(shè)置為輸入模式下才有效。

屏蔽中斷功能

可以通過對(duì)Px_CR2寄存器的相應(yīng)位進(jìn)行編程來單獨(dú)使能/關(guān)閉外部中斷功能。復(fù)位后外部中斷是關(guān)閉的。

提示:EXTI外部中斷只有在IO輸入模式下才有效,配置才輸出模式,不能正常由外部觸發(fā)中斷。

Ⅲ軟件工程源代碼

1.關(guān)于工程

本文提供的工程代碼是基于前面軟件工程“STM8S-A04_UART基本收發(fā)數(shù)據(jù)”增加EXTI外部中斷修改而來。初學(xué)的朋友可以參看我前面對(duì)應(yīng)的基礎(chǔ)文章,那些文章講的比較詳細(xì)。

2.EXTI引腳配置

我們尚且定義為按鍵KEY,浮動(dòng)輸入,中斷模式。

#define KEY_GPIO_PORT GPIOD

#define KEY_GPIO_PIN GPIO_PIN_2

GPIO_Init(KEY_GPIO_PORT, (GPIO_Pin_TypeDef)KEY_GPIO_PIN, GPIO_MODE_IN_FL_IT);

3.EXTI中斷配置

void EXTI_Configuration(void)

{

EXTI_SetExtIntSensitivity(EXTI_PORT_GPIOD, EXTI_SENSITIVITY_FALL_ONLY);

EXTI_SetTLISensitivity(EXTI_TLISENSITIVITY_FALL_ONLY);

}

這個(gè)地方配置成下降沿中斷,端口需對(duì)應(yīng)引腳的端口。

4.中斷入口函數(shù)

#define KEY_READ GPIO_ReadInputPin(KEY_GPIO_PORT, KEY_GPIO_PIN)

INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6)

{

if(RESET == KEY_READ)

{

IT_Delay(50); //延時(shí)消抖

if(RESET == KEY_READ) //確認(rèn)按下

{

LED_REVERSE; //改變LED狀態(tài)

}

}

}

提示:我們使用的GPIOD,入口需要對(duì)應(yīng)。

下載

STM8S資料

http://pan.baidu.com/s/1o7Tb9Yq

軟件源代碼工程兩版本(STM8S-A09_EXTI外部中斷):

http://pan.baidu.com/s/1c2EcRo0

聲明:本文內(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)投訴
  • EXIT圖
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    6998
  • STM8S
    +關(guān)注

    關(guān)注

    16

    文章

    149

    瀏覽量

    31407
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32CUBEMX(11)--外部中斷(EXTI)

    概述 外部中斷和事件控制器 (EXTI) 管理外部和內(nèi)部異步事件 / 中斷,并生成相應(yīng)的事件請(qǐng)求到CPU/
    發(fā)表于 09-10 15:44

    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(4)EXTI 中斷介紹

    EXTI(中斷/事件控制器)包含多個(gè)相互獨(dú)立的邊沿檢測(cè)電路并且能夠向處理器內(nèi)核產(chǎn)生中斷請(qǐng)求或喚醒事件。 EXTI 有三種觸發(fā)類型:上升沿觸發(fā)、下降沿觸發(fā)和任意沿觸發(fā)。
    的頭像 發(fā)表于 08-13 11:20 ?454次閱讀
    【GD32 MCU 入門教程】GD32 MCU 常見外設(shè)介紹(4)<b class='flag-5'>EXTI</b> <b class='flag-5'>中斷</b>介紹

    TPD8S009用于DisplayPort和HDMI的8通道ESD保護(hù)數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《TPD8S009用于DisplayPort和HDMI的8通道ESD保護(hù)數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 07-11 10:41 ?0次下載
    TPD<b class='flag-5'>8S009</b>用于DisplayPort和HDMI的<b class='flag-5'>8</b>通道ESD保護(hù)數(shù)據(jù)表

    求助,關(guān)于STM8S103外部中斷問題求解

    );/*設(shè)置為上升沿和下降沿觸發(fā)觸發(fā)中斷*/ EXTI_CR1 |= (uint8_t)((uint8_t)(0x01) << 4);/*設(shè)置為上升沿和下降沿觸發(fā)觸發(fā)
    發(fā)表于 05-16 07:25

    STM8進(jìn)入halt模式后由EXTI中斷喚醒,程序無法繼續(xù)正常運(yùn)行下去的原因?

    大家好,我現(xiàn)在有一個(gè)問題請(qǐng)教: 1. 我的STM8S103K3在執(zhí)行完相關(guān)任務(wù)后進(jìn)入halt模式,在進(jìn)入之前我設(shè)置了幾個(gè)EXTI中斷 2. 中斷服務(wù)函數(shù)中沒有任何的操作,只起一個(gè)喚醒系
    發(fā)表于 05-15 06:40

    STM8L外部中斷跟普通MCU的外部中斷不一致,為什么?

    最近公司一個(gè)案子需要用到超低功耗MCU,在TI和ST的片子中糾結(jié)了一段時(shí)間,最后選了ST的STM8L151G2U6。 在使用外部中斷的時(shí)候迷糊了,發(fā)現(xiàn)這個(gè)的外部
    發(fā)表于 05-15 06:23

    stm32怎么設(shè)置EXTI10 、EXTI11、EXTI12、EXTI13、EXTI14、EXTI15的中斷優(yōu)先級(jí)呢?

    EXTI15_10_IRQHandler中EXTI10 、EXTI11、EXTI12、EXTI13、EX
    發(fā)表于 05-14 08:30

    求助,STM8S外部中斷的問題求解

    stm8s103 外部中斷問題,比如PD2口設(shè)置了外部中斷,上升沿觸發(fā),此中斷軟件優(yōu)先級(jí)3級(jí)最高
    發(fā)表于 05-10 08:23

    STM8S外部中斷進(jìn)去了,出不來怎么解決?

    STM8S外部中斷進(jìn)去了,出不來。也沒有中斷標(biāo)志位,怎么才能讓程序走出來?
    發(fā)表于 05-09 06:25

    【GD32F470紫藤派開發(fā)板使用手冊(cè)】第三講 EXTI-按鍵中斷檢測(cè)實(shí)驗(yàn)

    通過本實(shí)驗(yàn)主要學(xué)習(xí)以下內(nèi)容: EXTI中斷原理; 按鍵中斷檢測(cè)原理;
    的頭像 發(fā)表于 05-05 09:22 ?538次閱讀
    【GD32F470紫藤派開發(fā)板使用手冊(cè)】第三講 <b class='flag-5'>EXTI</b>-按鍵<b class='flag-5'>中斷</b>檢測(cè)實(shí)驗(yàn)

    請(qǐng)問stm32l152的外部中斷EXTI9_5_IRQn怎么使用?

    中斷向量EXTI9_5_IRQn包含了5種管腳的中斷。如果我設(shè)置了GPIO6和GPIO7為外部中斷。我使用HAL庫,,那么
    發(fā)表于 04-22 06:14

    STM32中斷分組及外部中斷的配置過程分享

    結(jié)構(gòu)體   NVIC_InitStructure.NVIC_IRQChannel=EXTI2_IRQn;//使能外部中斷所在的通道
    發(fā)表于 04-08 08:05

    PC13 PC14 PC15作為外部中斷輸入口,頻繁進(jìn)入中斷是為什么?

    );/* 禁止修改RTC和后備寄存器*/ //BKP_ITConfig(DISABLE); ? ? ? /* 禁止TAMPER 中斷*/ } void EXTI0_Config(void)//外部
    發(fā)表于 04-03 07:39

    EXTI外部中斷在錯(cuò)誤的邊沿誤觸發(fā)可能什么原因?

    大家在進(jìn)行MCU項(xiàng)目開發(fā)時(shí)是否碰到過EXTI外部中斷在錯(cuò)誤的邊沿誤觸發(fā)的情況?比如EXTI配置的為下降沿觸發(fā),實(shí)際情況在個(gè)別上升沿的時(shí)候也被誤觸發(fā)了。
    的頭像 發(fā)表于 02-03 09:48 ?768次閱讀
    <b class='flag-5'>EXTI</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>在錯(cuò)誤的邊沿誤觸發(fā)可能什么原因?

    外部中斷的工作原理 外部中斷方式有哪些 為什么要使用外部中斷

    外部中斷的工作原理是單片機(jī)響應(yīng)外部事件的一種機(jī)制** **。
    的頭像 發(fā)表于 01-28 17:37 ?3595次閱讀
    RM新时代网站-首页