女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

STM32外部中斷大問(wèn)題

撞上電子 ? 2023-11-08 08:00 ? 次閱讀

問(wèn)題:一直進(jìn)入中斷,沒(méi)有觸發(fā)信號(hào),也一直進(jìn)入。

描述:開(kāi)PA0為外部中斷,剛剛很好,一個(gè)觸發(fā)信號(hào)一個(gè)中斷,中斷函數(shù)沒(méi)有丟,也沒(méi)有搶跑,開(kāi)PA1為外部中斷也是,都很好,只要能開(kāi)到3個(gè)外部中斷以上,就會(huì)出現(xiàn)這種情況,明明沒(méi)有觸發(fā)外部中斷,可是中斷服務(wù)函數(shù)還是不斷的++。

問(wèn)題一:電氣噪聲和抖動(dòng)

電氣噪聲和抖動(dòng)是常見(jiàn)的問(wèn)題,可能會(huì)導(dǎo)致STM32的外部中斷不斷觸發(fā),即使沒(méi)有明顯的觸發(fā)信號(hào)。以下是一些處理電氣噪聲和抖動(dòng)的方法:

1.添加電容濾波器:在外部中斷引腳上添加適當(dāng)大小的電容,以平滑信號(hào)并抑制高頻噪聲。電容的值應(yīng)根據(jù)信號(hào)頻率和噪聲特性進(jìn)行選擇。

2.使用濾波器電路:在外部信號(hào)引腳前添加濾波器電路,如低通濾波器,以濾除高頻噪聲。這可以是RC(電阻-電容)濾波器或其他合適的濾波器。

3.增加上拉/下拉電阻:使用外部上拉或下拉電阻,以增加信號(hào)的穩(wěn)定性。這有助于確保信號(hào)在未連接到外部源時(shí)維持穩(wěn)定的邏輯電平。

4.硬件抖動(dòng)消除電路:使用硬件抖動(dòng)消除電路,如Schmitt觸發(fā)器,以抵抗瞬時(shí)信號(hào)變化引起的抖動(dòng)。

5.增加軟件消抖:在中斷服務(wù)例程中實(shí)現(xiàn)軟件抖動(dòng)消除。這意味著只有在信號(hào)保持穩(wěn)定一段時(shí)間后才觸發(fā)中斷,而不是立刻觸發(fā)。

6.檢查信號(hào)線和地線:確保信號(hào)線和地線連接正確,避免共模干擾。使用良好的接地和信號(hào)線布局規(guī)則。

7.屏蔽未使用的引腳:在STM32上未使用的引腳可以被配置為輸出并拉低,以防止它們接收到干擾信號(hào)。

8.選擇合適的外部電源:使用穩(wěn)定的電源供應(yīng),避免電源波動(dòng)引起的問(wèn)題。

9.地線屏蔽:對(duì)于特別嘈雜的環(huán)境,可以考慮在地線上添加屏蔽層,以減少共模噪聲。

方法二:代碼配置問(wèn)題

如果外部中斷一直觸發(fā),但中斷源明明沒(méi)有給觸發(fā)信號(hào),代碼配置錯(cuò)誤可能是一個(gè)潛在的問(wèn)題。以下是該問(wèn)題的一些解決方法:

1.配置錯(cuò)誤的中斷源:STM32具有多個(gè)外部中斷線,每個(gè)中斷線可以與多個(gè)引腳相關(guān)聯(lián)。確保你正確選擇了要與外部中斷線相關(guān)聯(lián)的引腳。此外,還要確保你正確配置了中斷線的觸發(fā)方式和優(yōu)先級(jí)。

2.未正確初始化HAL庫(kù):如果你使用HAL庫(kù),確保在程序開(kāi)始時(shí)正確初始化HAL庫(kù),包括系統(tǒng)時(shí)鐘的配置。

3.合理設(shè)置優(yōu)先級(jí):根據(jù)你的應(yīng)用需求,為每個(gè)中斷源設(shè)置適當(dāng)?shù)膬?yōu)先級(jí)。通常,更重要的中斷應(yīng)具有更高的優(yōu)先級(jí)。注意,不要將所有中斷設(shè)置為相同的優(yōu)先級(jí),因?yàn)檫@可能會(huì)導(dǎo)致不穩(wěn)定的中斷處理。

4.分組優(yōu)先級(jí)的選擇:STM32允許你在中斷優(yōu)先級(jí)分組和子優(yōu)先級(jí)之間進(jìn)行權(quán)衡。分組優(yōu)先級(jí)位數(shù)的選擇取決于應(yīng)用的需求。較長(zhǎng)的分組優(yōu)先級(jí)位數(shù)允許更多的分組,但可能限制子優(yōu)先級(jí)的數(shù)量。較短的分組優(yōu)先級(jí)位數(shù)允許更多的子優(yōu)先級(jí),但可能限制分組數(shù)。

5.處理多級(jí)中斷:如果你有多個(gè)中斷源,確保正確設(shè)置它們的優(yōu)先級(jí),以確保較高優(yōu)先級(jí)的中斷可以打斷較低優(yōu)先級(jí)的中斷。這在實(shí)時(shí)性要求較高的系統(tǒng)中尤為重要。

6.不要忽略系統(tǒng)中斷:STM32還有一些系統(tǒng)中斷,如SysTick定時(shí)器中斷,這些中斷對(duì)系統(tǒng)的正常運(yùn)行非常重要。在設(shè)置中斷優(yōu)先級(jí)時(shí),不要忽略這些系統(tǒng)中斷。

7.避免中斷嵌套問(wèn)題:在某些情況下,中斷嵌套可能會(huì)引起問(wèn)題。確保不會(huì)出現(xiàn)不必要的中斷嵌套,以避免優(yōu)先級(jí)爭(zhēng)奪和死鎖問(wèn)題。

8.引腳模式錯(cuò)誤:確保你已正確配置外部中斷引腳的模式。在HAL庫(kù)中,可以使用 `HAL_GPIO_Init` 函數(shù)或直接設(shè)置寄存器來(lái)配置引腳模式。外部中斷引腳應(yīng)配置為輸入模式。示例(使用HAL庫(kù)):

GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_INPUT; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

9.引腳狀態(tài)錯(cuò)誤:檢查引腳的初始狀態(tài)。外部中斷引腳可能需要上拉或下拉電阻來(lái)確保初始狀態(tài)是穩(wěn)定的。示例(使用HAL庫(kù)):

GPIO_InitStruct.Pull = GPIO_PULLUP; // 或 GPIO_PULLDOWN

10 觸發(fā)方式設(shè)置錯(cuò)誤:外部中斷可以根據(jù)信號(hào)的上升沿、下降沿或兩者都觸發(fā)。確保你選擇了正確的觸發(fā)方式。示例(使用HAL庫(kù)):

EXTI_InitStruct.Trigger = EXTI_TRIGGER_RISING_FALLING; // 或 EXTI_TRIGGER_RISING 或 EXTI_TRIGGER_FALLING

11. 中斷引腳編號(hào)錯(cuò)誤:STM32有多個(gè)引腳可用于外部中斷,確保你選擇的引腳編號(hào)與硬件連接匹配。不同的STM32型號(hào)可能有不同的引腳分配。

12. 中斷線配置錯(cuò)誤:某些STM32型號(hào)允許將多個(gè)引腳連接到相同的中斷線。確保你正確配置了中斷線以將引腳連接到外部中斷。

13. 未啟用中斷線:在使用外部中斷之前,需要啟用中斷線。在HAL庫(kù)中,你可以使用 `HAL_NVIC_EnableIRQ` 函數(shù)來(lái)啟用中斷線。示例(使用HAL庫(kù)):

HAL_NVIC_EnableIRQ(EXTI0_IRQn); // 啟用中斷線0

14.中斷服務(wù)例程過(guò)長(zhǎng):中斷服務(wù)例程應(yīng)盡量簡(jiǎn)潔和高效,不應(yīng)占用太多時(shí)間。如果中斷服務(wù)例程過(guò)長(zhǎng),可能會(huì)導(dǎo)致其他中斷無(wú)法及時(shí)觸發(fā),或者導(dǎo)致系統(tǒng)性能問(wèn)題。確保中斷服務(wù)例程只包含必要的操作,避免執(zhí)行復(fù)雜的計(jì)算或大量的數(shù)據(jù)傳輸。

15.未清除中斷標(biāo)志:如果中斷服務(wù)例程未清除中斷標(biāo)志,可能會(huì)導(dǎo)致中斷不斷觸發(fā),因?yàn)橹袛鄻?biāo)志仍然保持為1。

16.全局中斷嵌套問(wèn)題:如果中斷嵌套配置不正確,可能會(huì)導(dǎo)致問(wèn)題,如死鎖或中斷爭(zhēng)奪。

17.棧溢出:如果中斷服務(wù)例程的調(diào)用棧溢出,可能會(huì)導(dǎo)致不穩(wěn)定的行為。

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

    關(guān)注

    2289

    文章

    11011

    瀏覽量

    362275
  • 信號(hào)
    +關(guān)注

    關(guān)注

    11

    文章

    2841

    瀏覽量

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

    關(guān)注

    5

    文章

    904

    瀏覽量

    42510
收藏 人收藏

    評(píng)論

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

    第六章 外部中斷

    本章介紹W55MH32的IO口作為外部中斷輸入的使用。先闡述了NVIC(嵌套向量中斷控制器) 的結(jié)構(gòu)、寄存器、優(yōu)先級(jí)及相關(guān)函數(shù),再說(shuō)明EXTI(外部
    的頭像 發(fā)表于 05-26 16:27 ?345次閱讀
    第六章 <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    極海APM32F003觸發(fā)NMI中斷的解決方案

    問(wèn)題:APM32F003F6P6 PC3配置成外部中斷口,下拉觸發(fā)之后沒(méi)有進(jìn)入EINTC_IRQHandler外部中斷函數(shù),反而一直觸發(fā)NMI中斷
    的頭像 發(fā)表于 05-24 14:44 ?153次閱讀
    極海APM32F003觸發(fā)NMI<b class='flag-5'>中斷</b>的解決方案

    STM32使用外部中斷觸發(fā)ADC采樣DMA搬運(yùn)出現(xiàn)兩次進(jìn)入DMA中斷的異常情況,怎么解決?

    STM32使用外部中斷觸發(fā)ADC采樣DMA搬運(yùn)出現(xiàn)兩次進(jìn)入DMA中斷的異常情況,使用的HAL庫(kù)+MX配置的,示波器觀察波形ADC中斷進(jìn)入一次
    發(fā)表于 03-14 12:46

    Stm32f103 hal庫(kù)如果設(shè)置多個(gè)外部中斷,只要用螺絲刀碰觸其中一個(gè)中斷線,所有的中斷函數(shù)都有可能進(jìn)入,亂跳,為什么?

    Stm32f103 hal庫(kù)如果設(shè)置多個(gè)外部中斷,只要用螺絲刀碰觸其中一個(gè)中斷線,所有的中斷函數(shù)都有可能進(jìn)入,亂跳。同一個(gè)線路板用標(biāo)準(zhǔn)庫(kù)就沒(méi)
    發(fā)表于 03-10 08:07

    STM32F407高速USB Device模式在外部中斷15響應(yīng)后發(fā)送4K個(gè)數(shù)據(jù),外部中斷循環(huán)給出,導(dǎo)致一部分外部中斷接收不到怎么解決?

    外部中斷間隔時(shí)間80us,共8000個(gè),80us時(shí)間USB發(fā)送4KByte數(shù)據(jù),外部中斷會(huì)少100多個(gè)。如果把USB發(fā)送屏蔽掉,8000個(gè)中斷
    發(fā)表于 03-07 13:46

    ADS2812做UPS使用外部AD8364,PWM中斷觸發(fā)外部AD,但電流采樣不到是為什么?

    2812做UPS使用外部AD8364,PWM中斷觸發(fā)外部AD,但電流采樣不到,請(qǐng)問(wèn)為什么?電壓能采樣到,我的電流霍爾是放在輸出濾波電感之前,逆變橋之后的。
    發(fā)表于 02-13 06:19

    串口中斷是內(nèi)部中斷還是外部中斷,串口中斷是怎么觸發(fā)的

    串口中斷通常被視為外部中斷。雖然串口控制器(如USART、UART等)可能集成在微控制器或處理器的內(nèi)部,但從中斷的角度來(lái)看,串口中斷是由處理
    的頭像 發(fā)表于 01-29 15:03 ?1377次閱讀

    stm32 GPIO中斷配置教程

    在嵌入式開(kāi)發(fā)中,STM32微控制器因其高性能和豐富的外設(shè)而廣受歡迎。GPIO(通用輸入/輸出)中斷STM32微控制器中常用的功能之一,它允許開(kāi)發(fā)者在特定引腳上檢測(cè)到外部信號(hào)變化時(shí)快速
    的頭像 發(fā)表于 11-19 15:53 ?2987次閱讀

    單片機(jī)有哪些中斷類型

    單片機(jī)中斷是指在單片機(jī)執(zhí)行程序的過(guò)程中,當(dāng)外部設(shè)備或內(nèi)部條件發(fā)生某個(gè)特定事件時(shí),能夠暫停當(dāng)前正在執(zhí)行的程序,轉(zhuǎn)而去執(zhí)行一個(gè)特定的服務(wù)程序(稱為中斷服務(wù)程序或中斷處理程序),處理該事件,
    的頭像 發(fā)表于 10-17 18:12 ?2089次閱讀

    在TMS320C672x器件上配置外部中斷

    電子發(fā)燒友網(wǎng)站提供《在TMS320C672x器件上配置外部中斷.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 09:58 ?0次下載
    在TMS320C672x器件上配置<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

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

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

    stm32怎樣觸發(fā)軟件中斷

    了解STM32中斷系統(tǒng) STM32微控制器具有豐富的中斷系統(tǒng),包括NVIC(嵌套向量中斷控制器)和SYSTICK定時(shí)器。NVIC可以處理多達(dá)
    的頭像 發(fā)表于 09-02 09:32 ?1593次閱讀

    STM32U5 PB3作外部下降沿中斷中斷進(jìn)不去是怎么回事?

    使用cubemx配置PB3作為外部下降沿中斷中斷只能進(jìn)入一次,后面就進(jìn)不去了,用其他引腳做相同功能,能正常多次進(jìn)入中斷
    發(fā)表于 07-18 06:53

    STM32外部事件應(yīng)該何如使用?

    知道外部事件是產(chǎn)生中斷標(biāo)志,但是不產(chǎn)生中斷請(qǐng)求。但是在主函數(shù)中應(yīng)該怎么檢測(cè)這個(gè)中斷標(biāo)志,或者說(shuō)應(yīng)該怎么配置。在cubemx中,將io口配置為事件模式之后。相對(duì)應(yīng)的
    發(fā)表于 07-05 08:00

    ESP32 SPI-slave用中斷實(shí)時(shí)采集外部AD值失敗的原因?怎么解決?

    左右,中斷延遲響應(yīng),當(dāng)處理中斷執(zhí)行中斷函數(shù)時(shí),AD數(shù)據(jù)已輸出完畢已為時(shí)已晚,若無(wú)法及時(shí)處理數(shù)據(jù),調(diào)用spi_slave_transmit讀取出值全是0xFF 用示波器抓取波形,外部A
    發(fā)表于 06-17 08:14