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

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

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

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

STM8S_009_ EXTI外部中斷

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

有人問

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

Ⅰ寫在前面

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

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

ⅡEXTI基礎(chǔ)知識

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

開啟中斷功能

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

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

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

屏蔽中斷功能

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

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

Ⅲ軟件工程源代碼

1.關(guān)于工程

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

2.EXTI引腳配置

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

#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);

}

這個地方配置成下降沿中斷,端口需對應(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); //延時消抖

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

{

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

}

}

}

提示:我們使用的GPIOD,入口需要對應(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • EXIT圖
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    7056
  • STM8S
    +關(guān)注

    關(guān)注

    16

    文章

    149

    瀏覽量

    31907
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

    EXTI(中斷/事件控制器)包含多個相互獨立的邊沿檢測電路并且能夠向處理器內(nèi)核產(chǎn)生中斷請求或喚醒事件。 EXTI 有三種觸發(fā)類型:上升沿觸發(fā)、下降沿觸發(fā)和任意沿觸發(fā)。
    的頭像 發(fā)表于 08-13 11:20 ?775次閱讀
    【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ā)表于 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ù)正常運行下去的原因?

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

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

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

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

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

    STM8S105K4 PD口的外部中斷和串口接收中斷一起用會有問題嗎?

    請問大家 我用的是 STM8S105K4的IC . 程序中要用到PD口的外部中斷 和串口接收中斷。而串口 是 UART2(PD5 和PD6) 如果兩個
    發(fā)表于 05-13 06:42

    做一個IO模擬串口的,外部中斷進(jìn)一次自動執(zhí)行兩次怎么解決?

    _SENSITIVITY_FALL_ONLY); enableInterrupts(); } 中斷 INTERRUPT_HANDLER(EXTI_PORTD_IRQHandler, 6) { unsigned int recuart=0; char num=
    發(fā)表于 05-11 08:35

    stm8s003停機(jī)后,外部中斷有時候會無法退出停機(jī)狀態(tài),為什么?

    stm8s003,進(jìn)入停機(jī),外部中斷退出停機(jī),但是經(jīng)常會觸發(fā)中斷之后卻沒退出停機(jī)狀態(tài),再觸發(fā)才行,這是什么問題。我用示波器看過外部
    發(fā)表于 05-11 08:29

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

    我在使用PB4 做外部中斷時,要求下降沿進(jìn)中斷,但測試發(fā)現(xiàn)當(dāng)我按下Key 時,可以進(jìn)中斷,但我釋放Key時也進(jìn)中斷....不清楚為什么? P
    發(fā)表于 05-11 07:05

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

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

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

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

    把AVR的程序移植使用STM8時,觸發(fā)外部中斷后無法跳出到主函數(shù)是怎么回事?

    求助,把AVR的程序移植使用STM8時發(fā)現(xiàn),觸發(fā)外部中斷后,程序跳到中斷函數(shù)并運行,但運行完中斷函數(shù)之后并沒有回到主函數(shù)里面執(zhí)行while
    發(fā)表于 05-06 09:21

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

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