国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

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學(xué)習(xí)筆記一外部中斷

冬至子 ? 來(lái)源:TECHTIMES ? 作者:霽風(fēng)AI ? 2023-10-24 14:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. STM32 外部中斷簡(jiǎn)介

STM32 的每個(gè) IO 都可以作為外部中斷的中斷輸入口。STM32F103 的中斷控制器支持 19 個(gè)外部中斷/事件請(qǐng)求。每個(gè)中斷設(shè)有狀態(tài)位,每個(gè)中斷/事件都有獨(dú)立的觸發(fā)和屏蔽設(shè)置。代碼主要分布在固件庫(kù)的 stm32f10x_exti.h 和 stm32f10x_exti.c 文件。

STM32F103的 19 個(gè)外部中斷為:

1.jpg

觸發(fā)方式:STM32 的外部中斷是通過(guò)邊沿來(lái)觸發(fā)的,不支持電平觸發(fā)。

2. 外部中斷分組

STM32 的每一個(gè) GPIO 都能配置成一個(gè)外部中斷觸發(fā)源,STM32 通過(guò)根據(jù)引腳的序號(hào)不同將眾多中斷觸發(fā)源分成不同的組。

比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0 為第一組。

依此類推,我們能得出一共有16 組,STM32 規(guī)定,每一組中同時(shí)只能有一個(gè)中斷觸發(fā)源工作,那么,最多工作的也就是16個(gè)外部中斷。

圖片

3. 使用 IO 口外部中斷的配置步驟

3.1 初始化 IO 口為輸入

設(shè)置作為外部中斷輸入的 IO 口的狀態(tài),可以設(shè)置為上拉 / 下拉輸入 / 浮空輸入,但浮空的時(shí)候外部一定要帶上拉,或者下拉電阻。否則可能導(dǎo)致中斷不停的觸發(fā)。在干擾較大的地方,就算使用了內(nèi)部上拉/下拉,也建議使用外部上拉/下拉電阻,這樣可以一定程度防止外部干擾帶來(lái)的影響。

3.2 開(kāi)啟 IO 口復(fù)用時(shí)鐘,設(shè)置 IO 口與中斷線的映射關(guān)系

STM32 的 IO 口與中斷線的對(duì)應(yīng)關(guān)系需要配置外部中斷配置寄存器 EXTICR,這樣我們要先開(kāi)啟復(fù)用時(shí)鐘,然后配置 IO 口與中斷線的對(duì)應(yīng)關(guān)系。才能把外部中斷與中斷線連接起來(lái)。

3.3 開(kāi)啟與該IO口相對(duì)的線上中斷/事件,設(shè)置觸發(fā)條件

配置中斷產(chǎn)生的條件,STM32 可以配置成上升沿觸發(fā),下降沿觸發(fā),或者任意電平變化觸發(fā),但是不能配置成高電平觸發(fā)和低電平觸發(fā)。同時(shí)要開(kāi)啟中斷線上的中斷。

注意:

如果使用外部中斷,并設(shè)置該中斷的 EMR 位的話,會(huì)引起軟件仿真不能跳到中斷,而硬件上是可以的。而不設(shè)置 EMR,軟件仿真就可以進(jìn)入中斷服務(wù)函數(shù),并且硬件上也是可以的。建議不要配置 EMR 位。

3.4 配置中斷分組NVIC

配置中斷的分組,以及使能,對(duì) STM32 的中斷來(lái)說(shuō),只有配置了 NVIC 的設(shè)置,并開(kāi)啟才能被執(zhí)行,否則是不會(huì)執(zhí)行到中斷服務(wù)函數(shù)里面去的。

3.5 編寫(xiě)中斷服務(wù)函數(shù)

這是中斷設(shè)置的最后一步,中斷服務(wù)函數(shù),是必不可少的,如果在代碼里面開(kāi)啟了中斷,但是沒(méi)編寫(xiě)中斷服務(wù)函數(shù),就可能引起硬件錯(cuò)誤,從而導(dǎo)致程序崩潰!所以在開(kāi)啟了某個(gè)中斷后,一定要記得為該中斷編寫(xiě)服務(wù)函數(shù)。在中斷服務(wù)函數(shù)里面編寫(xiě)你要執(zhí)行的中斷后的操作。

4. 例程分析

4.1 配置外部中斷對(duì)應(yīng)IO

//---------------------------------------------------------------------------------------------------------------------------------------------
//    函 數(shù) 名: exti_gpio_config
//    功能說(shuō)明: 外部中斷GPIO參數(shù)配置
//    形    參: 無(wú)
//    返 回 值: 無(wú)
//    日    期: 2020-04-25
//    備    注: 
//    作    者: by 霽風(fēng)AI
//---------------------------------------------------------------------------------------------------------------------------------------------
static void exti_gpio_config(void)
{
    GPIO_InitTypeDef gpio_init_config;

     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//使能PORTA時(shí)鐘

    gpio_init_config.GPIO_Pin       = GPIO_Pin_0;//PA0
    gpio_init_config.GPIO_Mode      = GPIO_Mode_IPD; //PA0設(shè)置成輸入,默認(rèn)下拉      
    GPIO_Init(GPIOA, &gpio_init_config);//初始化GPIOA.0
}

4.2 配置外部中斷參數(shù)

//---------------------------------------------------------------------------------------------------------------------------------------------
//    函 數(shù) 名: exti_config
//    功能說(shuō)明: 外部中斷參數(shù)配置
//    形    參: 無(wú)
//    返 回 值: 無(wú)
//    日    期: 2020-04-25
//    備    注: 
//    作    者: by 霽風(fēng)AI
//---------------------------------------------------------------------------------------------------------------------------------------------
static void exti_config(void)
{
    EXTI_InitTypeDef exti_init_config;

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);    //外部中斷,需要使能AFIO時(shí)鐘

    GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); //PA0設(shè)置為外部中斷

      exti_init_config.EXTI_Line      = EXTI_Line0;
      exti_init_config.EXTI_Mode      = EXTI_Mode_Interrupt;  
      exti_init_config.EXTI_Trigger   = EXTI_Trigger_Rising;//上升沿觸發(fā)
      exti_init_config.EXTI_LineCmd   = ENABLE;

    EXTI_Init(&exti_init_config);       //根據(jù)EXTI_InitTypeDef中指定的參數(shù)初始化外設(shè)EXTI寄存器
}

4.3 配置中斷向量

//---------------------------------------------------------------------------------------------------------------------------------------------
//    函 數(shù) 名: exit_nvic_config
//    功能說(shuō)明: 中斷向量參數(shù)配置
//    形    參: 無(wú)
//    返 回 值: 無(wú)
//    日    期: 2020-04-25
//    備    注: 
//    作    者: by 霽風(fēng)AI
//---------------------------------------------------------------------------------------------------------------------------------------------
static void exti_nvic_config(void)
{
    NVIC_InitTypeDef nvic_init_config;

    nvic_init_config.NVIC_IRQChannel                    = EXTI0_IRQn;//使能按鍵所在的外部中斷通道
    nvic_init_config.NVIC_IRQChannelPreemptionPriority  = 0x02;//搶占優(yōu)先級(jí)2
    nvic_init_config.NVIC_IRQChannelSubPriority         = 0x02;//子優(yōu)先級(jí)1
    nvic_init_config.NVIC_IRQChannelCmd                 = ENABLE;

    NVIC_Init(&nvic_init_config);
}

4.4 統(tǒng)一外部中斷調(diào)用接口

//---------------------------------------------------------------------------------------------------------------------------------------------
//    函 數(shù) 名: exti_init
//    功能說(shuō)明: 外部中斷初始化
//    形    參:     exti_no:中斷號(hào)
//    返 回 值: 無(wú)
//    日    期: 2020-04-25
//    備    注: 外部調(diào)用此函數(shù),實(shí)現(xiàn)EXTI的初始化配置
//    作    者: by 霽風(fēng)AI
//---------------------------------------------------------------------------------------------------------------------------------------------
void exti_init(uint8_t exti_no)
{
    if (exti_no == 0)
    {
        exti_gpio_config();
        exti_config();
        exti_nvic_config();
    }
}

4.5 編寫(xiě)中斷服務(wù)函數(shù)

//---------------------------------------------------------------------------------------------------------------------------------------------
//    函 數(shù) 名: EXTI0_IRQHandler
//    功能說(shuō)明: 外部中斷0服務(wù)函數(shù)
//    形    參: 無(wú)
//    返 回 值: 無(wú)
//    日    期: 2020-04-25
//    備    注: 
//    作    者: by 霽風(fēng)AI
//---------------------------------------------------------------------------------------------------------------------------------------------
void EXTI0_IRQHandler(void)
{
    if (EXTI_GetITStatus(EXTI_Line0) != RESET)  
    {
        g_exti_cnt++;

        if (g_exti_cnt % 2)
        {
            Bsp_LedOn(0);   //點(diǎn)亮OLED0
        }
        else 
        {
            Bsp_LedOff(0);  //熄滅OLED0
        }

        if (g_exti_cnt > 200)
        {
            g_exti_cnt = 0;
        }

        EXTI_ClearITPendingBit(EXTI_Line0); //清除EXTI0線路掛起
    }
}

補(bǔ)充:

在編寫(xiě)中斷服務(wù)函數(shù)的時(shí)候會(huì)經(jīng)常使用到兩個(gè)函數(shù)。

(1)第一個(gè)函數(shù)是判斷某個(gè)中斷線上的中斷是否發(fā)生(標(biāo)志位是否置位):

ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);

這個(gè)函數(shù)一般使用在中斷服務(wù)函數(shù)的開(kāi)頭判斷中斷是否發(fā)生。

(2)第二個(gè)是清除某個(gè)中斷線上的中斷標(biāo)志位:

void EXTI_ClearITPendingBit(uint32_t EXTI_Line);

這個(gè)函數(shù)一般應(yīng)用在中斷服務(wù)函數(shù)結(jié)束之前,清除中斷標(biāo)志位。

聲明:本文內(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)注

    2293

    文章

    11032

    瀏覽量

    364777
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    622

    瀏覽量

    68847
  • GPIO
    +關(guān)注

    關(guān)注

    16

    文章

    1280

    瀏覽量

    54066
  • 外部中斷
    +關(guān)注

    關(guān)注

    1

    文章

    133

    瀏覽量

    16201
  • 中斷控制器
    +關(guān)注

    關(guān)注

    0

    文章

    61

    瀏覽量

    9673
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    STM32單片機(jī)學(xué)習(xí)筆記(8):外部中斷

    利用CubMX生成基于32單片機(jī)的HAl庫(kù)工程,然后編寫(xiě)程序在proteus上仿真驗(yàn)證。本項(xiàng)目最適合沒(méi)有開(kāi)發(fā)板的同學(xué)學(xué)習(xí),零成本利用仿真軟件率先入門(mén)STM32單片機(jī)。本項(xiàng)目需要實(shí)現(xiàn)的功能就是利用CubMX配置外部
    發(fā)表于 07-20 15:32 ?1479次閱讀
    <b class='flag-5'>STM32</b>單片機(jī)<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(8):<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    STM32學(xué)習(xí)筆記外部中斷EXTI學(xué)習(xí)

    本帖最后由 飄落的葉 于 2013-4-10 10:46 編輯 STM32學(xué)習(xí)筆記外部中斷EXTI
    發(fā)表于 04-10 10:46

    STM32_外部中斷程序

    STM32 外部中斷程序,很好的學(xué)習(xí)資料,快來(lái)下載吧
    發(fā)表于 02-15 17:09 ?30次下載

    STM32學(xué)習(xí)筆記——外部中斷的初步了解

    STM32F103有76個(gè)中斷,包括16個(gè)內(nèi)核中斷和60個(gè)可屏蔽中斷,具有16級(jí)16級(jí)可編程的中斷優(yōu)先級(jí)。 理解
    發(fā)表于 11-30 01:47 ?988次閱讀
     <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>——<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>的初步了解

    STM32各模塊學(xué)習(xí)筆記

    STM32個(gè)模塊學(xué)習(xí)筆記 目錄 STM32筆記 中斷
    發(fā)表于 11-30 03:32 ?3248次閱讀

    STM32學(xué)習(xí)心得十五:外部中斷實(shí)驗(yàn)

    記錄下,方便以后翻閱~主要內(nèi)容:1) 外部中斷概述;2) 外部中斷庫(kù)函數(shù)般設(shè)置。官方資料
    發(fā)表于 11-21 17:51 ?15次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b>心得十五:<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實(shí)驗(yàn)

    Mini STM32 外部中斷實(shí)驗(yàn)

    、外部中斷概述1、STM32的每個(gè)IO都可以作為外部中斷輸入。2、
    發(fā)表于 11-22 15:06 ?10次下載
    Mini <b class='flag-5'>STM32</b> <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實(shí)驗(yàn)

    STM32學(xué)習(xí)筆記(4)——NVIC中斷優(yōu)先級(jí)管理和外部中斷EXTI

    STM32學(xué)習(xí)筆記(4)——NVIC中斷優(yōu)先級(jí)管理和外部中斷EXTI
    發(fā)表于 11-26 11:36 ?1次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>(4)——NVIC<b class='flag-5'>中斷</b>優(yōu)先級(jí)管理和<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>EXTI

    STM32F407學(xué)習(xí)記錄---外部中斷實(shí)驗(yàn)

    STM32F407學(xué)習(xí)記錄---外部中斷概述STM32F4外部
    發(fā)表于 11-29 16:06 ?4次下載
    <b class='flag-5'>STM32</b>F407<b class='flag-5'>學(xué)習(xí)</b>記錄---<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實(shí)驗(yàn)

    STM32外部中斷實(shí)驗(yàn)-EXTI

    STM32 外部中斷簡(jiǎn)介STM32 的每個(gè) IO 都可以作為外部中斷
    發(fā)表于 11-29 16:06 ?9次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>外部</b><b class='flag-5'>中斷</b>實(shí)驗(yàn)-EXTI

    STM32學(xué)習(xí)筆記外部中斷/事件

    中斷基礎(chǔ)知識(shí)異常就是中斷中斷就是異常。但是習(xí)慣上稱系統(tǒng)產(chǎn)生的為異常,外部產(chǎn)生的為中斷,即系統(tǒng)異常和外部
    發(fā)表于 12-04 17:06 ?7次下載
    【<b class='flag-5'>STM32</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>】<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>/事件

    STM32(六)-------中斷外部中斷

    STM32中斷應(yīng)用中斷知識(shí)介紹STM32 中斷應(yīng)用概覽異常NVIC優(yōu)先級(jí)定義中斷知識(shí)介紹
    發(fā)表于 12-04 17:21 ?9次下載
    <b class='flag-5'>STM32</b>(六)-------<b class='flag-5'>中斷</b>(<b class='flag-5'>外部</b><b class='flag-5'>中斷</b>)

    第二節(jié): 外部中斷學(xué)習(xí)(用CubeMX學(xué)習(xí)STM32)

    STM32CubeMX配置, 使用HAL庫(kù),學(xué)習(xí)STM32外部中斷,hal和CubeMX學(xué)習(xí)分享
    發(fā)表于 12-05 13:06 ?4次下載
    第二節(jié): <b class='flag-5'>外部</b><b class='flag-5'>中斷</b><b class='flag-5'>學(xué)習(xí)</b>(用CubeMX<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>STM32</b>)

    STM32_EXTI外部中斷學(xué)習(xí)筆記

    單片機(jī)有兩個(gè)外部中斷?,分別為外部中斷0、1。用來(lái)實(shí)時(shí)地處理外部事件的種內(nèi)部機(jī)制。當(dāng)某種
    發(fā)表于 01-14 15:21 ?3次下載
    <b class='flag-5'>STM32</b>_EXTI<b class='flag-5'>外部</b><b class='flag-5'>中斷</b><b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>筆記</b>

    STM32如何配置外部中斷?STM32外部中斷配置步驟

    STM32如何配置外部中斷?STM32外部中斷配置步驟? 作為
    的頭像 發(fā)表于 10-26 17:47 ?4645次閱讀